# $Id$ PyKota - Print Quota for CUPS and LPRng (c) 2003, 2004, 2005 Jerome Alet 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 : - Very good idea from Martin Oesterund : comment field for payments !!! - Another one : add a third value like 'nocheck' or something like that to allow an user to print with no limitation while still updating the balance and number of pages printed. - Make the SNMP and PJL delay and number of loops a new configuration directive. - Ensure that deleted or modified entries are flushed from the cache. - 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. - Allow soft and hard limits to be increased/decreased. - 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... - Think about some possible client <=> PyKota dialog possibilities, like embedding a small web server in PyKota for example, or something like that. - Finish implementation of quota-then-balance and balance-then-quota. - Introduce the pkusers command. pkusers --nogroup pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,... - Allow the --ingroups command line option to repykota, to report only users members of the specified groups. - 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. ============================================================ Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)