root / pykota / trunk / TODO @ 2376

Revision 2376, 5.0 kB (checked in by jerome, 19 years ago)

New item in TODO list, to please the brother HL3400C I've just got
and which doesn't update its internal page counter immediately after
being idle for several seconds...
Severity: since I now need this, probably other people do as well :-)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1# $Id$
2
3PyKota - Print Quota for CUPS and LPRng
4
5(c) 2003, 2004, 2005 Jerome Alet <alet@librelogiciel.com>
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program; if not, write to the Free Software
18Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
20============================================================
21
22TODO, in no particular order :
23       
24        - Make the SNMP and PJL delay and number of loops a new configuration
25          directive.
26       
27        - Ensure that deleted or modified entries are flushed from the cache.
28       
29        - Adds configurability to what happens when the user/group doesn't exist
30          when running edpykota. Rewrite the main loop to be able to abort
31          early, before any modification has taken place.
32         
33        - Add the listing of the member printers in pkprinters if the printer
34          is a printer group.
35         
36        - Add a new external hook to allow the overwriting of the job's ticket       
37          (mainly username and billing code) at startup time :
38         
39            1 - hook is launched and can do whatever it wants, like asking
40                the user for username+password or billing code
41               
42            2 - hook prints any (or all) of :   
43           
44                USER:some_username
45                BILLING:some_billingcode
46                DENY
47               
48                if hook doesn't print anything, job processed as usual.
49                if DENY, job is rejected.
50               
51            3 - if billing code or username is invalid, and if PyKota
52                is configured to loop in this case, hook is launched
53                again, otherwise job is rejected.
54               
55            4 - if billing code and/or username is valid, the job's
56                billing code and/or username are overwritten with
57                these values, and PyKota processes the job as usual.
58         
59        - Allow several levels of administrative priviledges by allowing
60          files like ~pykota/pykotadmin.someusername.conf (readonly by
61          user 'someusername'), and have the database server deal
62          with the permissions : no need for additionnal code or data
63          in PyKota's database !
64       
65        - Try to talk to education based distribution coordinators
66          (SambaEdu, SkoleLinux, K12LTSP, ...) to see how to
67          better integrate PyKota with these.
68         
69        - Allow soft and hard limits to be increased/decreased.
70       
71        - Add most configuration directives to the database itself,
72          while still allowing to overwrite them with the configuration
73          files at run time.
74       
75        - Ink accounting ala PrintBill.
76       
77        - Price and statistics per page format.
78       
79        - Allow the admin to choose an action to take when the database
80          is unavailable (server is down or something like that), so
81          introduce two directives :
82         
83            nodb: accept|reject|hold
84            lognodb: /path/to/file/for/later/batch/update/of/database
85       
86        - CUPS accepts the "STATE: ..." message as backchannel
87          data : use this to tell CUPS what action has been taken
88          for current job. I did some testing but wasn't able to
89          make it work...
90         
91        - Think about some possible client <=> PyKota dialog
92          possibilities, like embedding a small web server in
93          PyKota for example, or something like that.
94       
95        - Log something when --add is used with existing entries.
96          Maybe add a new command line option to force/not force
97          modification of existing entries.
98         
99        - Finish implementation of quota-then-balance and
100          balance-then-quota.
101         
102        - Introduce the pkusers command.
103          pkusers --nogroup
104          pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,...
105         
106        - Allow the --ingroups command line option to repykota, to
107          report only users members of the specified groups.
108         
109        - Documentation...
110         
111        - Learn more bits of PHP to help with phpPyKotaAdmin, which
112          is a GREAT tool !
113       
114        - Multidatabase support, e.g. store users in LDAP, quota 
115          related datas in PostgreSQL, history in text file,
116          and so on... For 2.0, probably not before.
117       
118       
119============================================================
120
121Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)
Note: See TracBrowser for help on using the browser.