root / pykota / trunk / TODO @ 2291

Revision 2291, 5.2 kB (checked in by jerome, 19 years ago)

Added George Farris' suggestion about a table for billing codes.

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