Changes

Line 64: Line 64:     
:'''1)''' (this is no way related to abiword's print to pdf ability)
 
:'''1)''' (this is no way related to abiword's print to pdf ability)
:The right click menu of an item in the journal will have a new option, i.e. send for network printing. When clicked, the item will be sent to a local virtual CUPS-PDF printer for PDF conversion, and the pdf will have metadata attached stating its details (this wont be visible to the user).The object is then said to be marked for printing and can be unmarked for printing.(That is by again right clicking on the parent journal item and clicking cancel for network printing).
+
:The right click menu of an item in the journal will have a new option, i.e. send for network printing. When clicked, the item will be sent to a local virtual CUPS-PDF printer for PDF conversion, and the pdf will have metadata attached stating its details (this PDF plus metadata wont be visible to the user).The object is then said to be marked for printing and can be unmarked for printing too.(That is by again right clicking on the parent journal item and clicking cancel for network printing).
:Also a similar button will be provided for saving to PDF. Which will have a PDF file of the same in journal;the pdf will be tangible.
+
:Also a similar button will be provided for saving to PDF. Which will have a PDF file of the same in journal;the pdf will be tangible. (that is text will be mapped as text only)
   −
: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.
+
: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 number 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 will be sent to the moodle web folder.
    
:(The 2nd would be implementing queuing and teacher review, reject approve facilities         
 
:(The 2nd would be implementing queuing and teacher review, reject approve facilities         
Line 74: Line 74:  
:( The 3rd usb printing on demand!)
 
:( 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.     
+
:'''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:'''
      −
: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 datastore. Which is pretty much the same for saving as PDF, or send for network printing.
+
: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).And print our file as a PDF in the datastore. Which is pretty much the same for saving as PDF, or sending to moodle.(in the latter we just dont display it, in the former we do)
 
: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 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 (Or we bypass the dialog automatically). The execution part of this will take place dynamically as soon as the user requests the print page.
  −
:And also, once the pdf is read, it is destroyed.
     −
: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 the second part of it when ever the print page url is accessed, we make browse communicate with the moodle print queue through xmlrpc to get the queue details, and upload that many slots (as the number of slots will also be dependent on the print queue through a php trick) This would essentially mean a rainbow hack so that browse can communicate with journal without a dialog (Or a simpler way will be to bypass the dialog automatically). The execution part of this will take place dynamically as soon as the user requests the print page. And also, once the pdf is read, it is destroyed.
   −
:for step-3, no new code is required; a few more dependencies are required, Which wont exceed 17mb. We will be including print directly (usb), as an option under the item's right click menu too.
+
: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 for his group.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.
 +
 
 +
:The moodle part can be achieved through hacking the already existing plugin [http://docs.moodle.org/en/Upload_a_single_file_assignment] and looking into the moodle API and plugin documentation. From my research so far, moodle has most of all the low level details already existing within the moodle libraries, even $_GET $_POST methods are abstracted into simpler functions.
 +
 
 +
:for step-3, no new code is required; a few more dependencies are required, Which wont exceed 17mb. We will be including print directly (usb), as an option under the item's right click menu too. This will essentially have the same code as print to pdf, but with code to select a new default printer added.
    
:''Is there a disadvantage in relying upon moodle for network printing?''
 
:''Is there a disadvantage in relying upon moodle for network printing?''
Line 183: Line 185:  
:Test code on a server with a printer, and test if everything works, get mentor and community feedback, and if any integration bugs remain, drill them out.   
 
:Test code on a server with a printer, and test if everything works, get mentor and community feedback, and if any integration bugs remain, drill them out.   
   −
:Milestone 3 result: '' It would be to finish the moodle plugin, and see to it that printing can be done through it by the teacher''
+
:Milestone 3 result: '' It would be to finish the moodle plugin, and see to it that printing can be done through it by the teacher and that we have thousands of happy XO user's faces''
    
:'''Beyond GSoC:'''
 
:'''Beyond GSoC:'''
143

edits