Changes

Line 67: Line 67:  
:The right click menu of an item in the journal will have a new option, i.e. create PDF. When clicked, the item will be sent to a local virtual CUPS-PDF printer, and the pdf will be marked with metadata attached stating its details.The PDF can be marked for printing or unmarked for printing. We will be using moodle as our interface for sending print requests on the network. The interface will have a user page and a teacher page. The page will have a report of his print jobs and a status report of his live jobs. And the ability to put 3 live jobs on queue. The no of upload slots will be dynamically updated according to his live jobs pending for teacher's approval. And the number of free slots will automatically be filled up by the browser with the to print PDFs. And then these objects can be sent to the moodle web folder.
 
:The right click menu of an item in the journal will have a new option, i.e. create PDF. When clicked, the item will be sent to a local virtual CUPS-PDF printer, and the pdf will be marked with metadata attached stating its details.The PDF can be marked for printing or unmarked for printing. We will be using moodle as our interface for sending print requests on the network. The interface will have a user page and a teacher page. The page will have a report of his print jobs and a status report of his live jobs. And the ability to put 3 live jobs on queue. The no of upload slots will be dynamically updated according to his live jobs pending for teacher's approval. And the number of free slots will automatically be filled up by the browser with the to print PDFs. And then these objects can be sent to the moodle web folder.
   −
:'''3)''' Through moodle the teacher will have a page displaying the contents of the print datastore along with user names attached, and he/she will be able to download them to his remote system, and  check them and approve them for printing if he/she wishes. After his/her approval or disapproval (that is a delete along with an option why) the information is held in the datastore, and the user can view it in the form of history transactions pertaining to his id, and teacher can view a finite list of previous transactions pertaining to all.  :
+
(The 2nd would be implementing queuing and teacher review, reject approve facilities       
 +
:'''2)''' Through moodle the teacher will have a page displaying the contents of the print datastore along with user names attached, and he/she will be able to download them to his remote system, and  check them and approve them for printing if he/she wishes. After his/her approval or disapproval (that is a delete along with an option why) the information is held in the datastore, and the user can view it in the form of history transactions pertaining to his id, and teacher can view a finite list of previous transactions pertaining to all.  :
   −
:'''4)''' The no School Server case. The simple solution to this case is to print directly through usb. And this won't be counter productive to the idea of teacher moderated printing, as the printer won't be available for just anyone; this is only a quick alternative to the 'save to portable drive and do the printing' method.     
+
( The 3rd usb printing on demand!)
 +
 
 +
:'''3)''' The no School Server case. The simple solution to this case is to print directly through usb. And this won't be counter productive to the idea of teacher moderated printing, as the printer won't be available for just anyone; this is only a quick alternative to the 'save to portable drive and do the printing' method.     
    
:'''In-Depth analysis:'''
 
:'''In-Depth analysis:'''
Line 75: Line 78:     
:for step-1, We use CUPS. The API has a nice array of functions, one of which is to get the printer's name (the cups-pdf virtual printer).( Since we know the name is CUPS-PDF, we can check it) and print our file as a PDF in the journal. For the sake of our python convenience we will be using a python wrapper to cups, pycups. The print objects will have metadata attached to them through the sugar datastore API.  
 
:for step-1, We use CUPS. The API has a nice array of functions, one of which is to get the printer's name (the cups-pdf virtual printer).( Since we know the name is CUPS-PDF, we can check it) and print our file as a PDF in the journal. For the sake of our python convenience we will be using a python wrapper to cups, pycups. The print objects will have metadata attached to them through the sugar datastore API.  
   
:For the second part of it when ever the print page url is found, we make browse communicate with the moodle print queue through xmlrpc get the details, and upload to that many slots (as the number of slots will also be dependent on the print queue) This would essentially mean a rainbow hack so that browse can communicate with journal without a dialog. The execution part of this will take place as the  
 
:For the second part of it when ever the print page url is found, we make browse communicate with the moodle print queue through xmlrpc get the details, and upload to that many slots (as the number of slots will also be dependent on the print queue) This would essentially mean a rainbow hack so that browse can communicate with journal without a dialog. The execution part of this will take place as the  
   Line 81: Line 83:  
:for step-2, We will be using the interface already created, but for the teacher we will issue global access privileges enabling him/her to access all the sent requests, and the approve button will initiate shell commands to send the particular file to a network printer through CUPS installed on the server.This can again be achieved through hacking into moodle and understanding how notifications are sent to the students from teacher. The notifications would be relating to whether the teacher has approved or disapproved the print.  case a, we would just make  
 
:for step-2, We will be using the interface already created, but for the teacher we will issue global access privileges enabling him/her to access all the sent requests, and the approve button will initiate shell commands to send the particular file to a network printer through CUPS installed on the server.This can again be achieved through hacking into moodle and understanding how notifications are sent to the students from teacher. The notifications would be relating to whether the teacher has approved or disapproved the print.  case a, we would just make  
   −
:for step-3, no new code is required, just a slight modification of the cp activity to select the type of printing. A few more dependencies, Which wont exceed 17mb.  
+
:for step-3, no new code is required, just a slight modification of the cp activity to select the type of printing. A few more dependencies, Which wont exceed 17mb. We will be including print directly (usb), as an option under the item's right click menu too.
    
:''Is there a disadvantage in relying upon moodle for network printing?''
 
:''Is there a disadvantage in relying upon moodle for network printing?''
Line 143: Line 145:     
:'''Week 1 : '''
 
:'''Week 1 : '''
:Write code which prints to any selected printer. (CUPS-pdf will be the primary case till gsoc), and add the print button to the item right click menu of journal.  
+
:Write code which prints to any selected printer. (CUPS-pdf will be the primary case till gsoc), and add the print buttons to the item right click menu of journal.  
 
:Start working on code browse hack to parse file paths to a specific pages forum input box.
 
:Start working on code browse hack to parse file paths to a specific pages forum input box.
  
143

edits