root / pykota / trunk / TODO @ 2299

Revision 2299, 5.7 kB (checked in by jerome, 19 years ago)

New item added, thanks to George Farris again...

  • 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
19
20============================================================
21
22TODO, in no particular order :
23       
24        - Allow 'external' syntax for denyduplicates :
25       
26            in pykota.conf, if denyduplicates is set to :
27 
28              - yes ==> then duplicates are denied silently (with a log)
29              - no (or unset) ==> then duplicates are allowed (without a log)
30              - external(some_command_here) then the command is launched
31                and its output is parsed, it may contain only ALLOW or DENY.
32                And it should handle the dialog with the user, if any.
33              - Add a table listing all the allowed billing codes. Unknown
34                billing codes should produce an action which is configurable
35                (reject the job being the default). The billing codes table
36                will contains total pages and cost, and life time pages
37                and cost => speedup for LDAP, and allows people to cleanup
38                the printing history in any case. A tool to manage the
39                table of billing codes must be written, but this will
40                be easy.
41         
42        - Add a way to strip off "smbprn.????????" from the left of
43          print jobs' titles (only appear when printing as raw from
44          Winboxes it seems)
45
46        - Pass-through mode for printers : history correctly filled (including
47          job size) but no impact on user's page counter or account
48          balance : this is meant to be a temporary situation for
49          a printer to be in pass-through mode, for example during
50          an exam where the faculty pays for the printouts and we
51          don't want our users to complain about their credits being
52          "eaten" for mandatory printouts.
53         
54        - Allow several levels of administrative priviledges by allowing
55          files like ~pykota/pykotadmin.someusername.conf (readonly by
56          user 'someusername'), and have the database server deal
57          with the permissions : no need for additionnal code or data
58          in PyKota's database !
59       
60        - Add a "printing denied" indicator on user print quota entries, 
61          to temporarily forbid an user to print on a particular printer.
62         
63        - Maybe per user "denyduplicates" : my 5 years old daughter
64          just prints again when the printer is off...
65         
66        - Now that the job size is ALWAYS precomputed, add a
67          MaxJobSize attribute to users and groups (printers as
68          well, maybe ?) to limit each job's size if needed.
69         
70        - Add precomputed job size (and price) to the history for
71          controlling purpose.
72         
73        - Try to talk to education based distribution coordinators
74          (SambaEdu, SkoleLinux, K12LTSP, ...) to see how to
75          better integrate PyKota with these.
76         
77        - Allow soft and hard limits to be increased/decreased.
78       
79        - Add most configuration directives to the database itself,
80          while still allowing to overwrite them with the configuration
81          files at run time.
82       
83        - Ink accounting ala PrintBill.
84       
85        - Price and statistics per page format.
86       
87        - Add a description field to users/groups.
88       
89        - Allow the admin to choose an action to take when the database
90          is unavailable (server is down or something like that), so
91          introduce two directives :
92         
93            nodb: accept|reject|hold
94            lognodb: /path/to/file/for/later/batch/update/of/database
95       
96        - CUPS accepts the "STATE: ..." message as backchannel
97          data : use this to tell CUPS what action has been taken
98          for current job. I did some testing but wasn't able to
99          make it work...
100         
101        - Think about some possible client <=> PyKota dialog
102          possibilities, like embedding a small web server in
103          PyKota for example, or something like that.
104       
105        - Log something when --add is used with existing entries.
106          Maybe add a new command line option to force/not force
107          modification of existing entries.
108         
109        - Finish implementation of quota-then-balance and
110          balance-then-quota.
111         
112        - Introduce the pkusers command.
113          pkusers --nogroup
114          pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,...
115         
116        - Allow the --ingroups command line option to repykota, to
117          report only users members of the specified groups.
118         
119        - Documentation...
120         
121        - Learn more bits of PHP to help with phpPyKotaAdmin, which
122          is a GREAT tool !
123       
124        - Multidatabase support, e.g. store users in LDAP, quota 
125          related datas in PostgreSQL, history in text file,
126          and so on... For 2.0, probably not before.
127       
128       
129============================================================
130
131Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)
Note: See TracBrowser for help on using the browser.