# $Id: TODO 1855 2005-10-08 19:57:25Z jerome $

PyKota - Print Quotas for CUPS and LPRng

(c) 2003, 2004, 2005 Jerome Alet <alet@librelogiciel.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

============================================================

TODO, in no particular order :
        
        - Growl notifications for MacOSX users (while printing) :
        
          http://the.taoofmac.com/space/Projects/netgrowl.py
          
        - PJL for non-networked backends (see ML's history)
        
        - --freemoney/--freepages command line option for edpykota : 
          don't modify the totals or payments, but instead set
          a freemoney/freepages attribute which will be decremented/incremented
          **before** the real one.
          
        - Make the SNMP and PJL delay and number of loops a new configuration
          directive.
        
        - Adds configurability to what happens when the user/group doesn't exist
          when running edpykota. Rewrite the main loop to be able to abort
          early, before any modification has taken place.
          
        - Add the listing of the member printers in pkprinters if the printer
          is a printer group.
          
        - Allow several levels of administrative priviledges by allowing
          files like ~pykota/pykotadmin.someusername.conf (readonly by
          user 'someusername'), and have the database server deal
          with the permissions : no need for additionnal code or data
          in PyKota's database !
        
        - Try to talk to education based distribution coordinators
          (SambaEdu, SkoleLinux, K12LTSP, ...) to see how to
          better integrate PyKota with these.
          
        - Add most configuration directives to the database itself,
          while still allowing to overwrite them with the configuration
          files at run time.
        
        - Ink accounting ala PrintBill.
        
        - Price and statistics per page format.
        
        - Allow the admin to choose an action to take when the database
          is unavailable (server is down or something like that), so
          introduce two directives :
          
            nodb: accept|reject|hold
            lognodb: /path/to/file/for/later/batch/update/of/database
        
        - CUPS accepts the "STATE: ..." message as backchannel
          data : use this to tell CUPS what action has been taken
          for current job. I did some testing but wasn't able to
          make it work...
          
        - Introduce the pkusers command.
          pkusers --nogroup
          pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,...
          
        - Documentation...
          
        - Learn more bits of PHP to help with phpPyKotaAdmin, which
          is a GREAT tool !
       
        - Multidatabase support, e.g. store users in LDAP, quota  
          related datas in PostgreSQL, history in text file,
          and so on... For 2.0, probably not before.
          
        - Re-add support for LPRng if interest is high enough (it is
          not for now)
        
        
============================================================

Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)
