2000-01-12  Milan Zamazal  <pdm@freesoft.cz>

	* gnats.py (Gnats.categories_full): Fix error in a formatting
	string (thanks to Jun Morimoto).

2000-01-09  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.13.

	* problem.py (Problem.ok): Don't complain on missing responsible
	change reason if category was changed.

	* cgiscript.py (edit): Change responsible together with a category
	change.

1999-11-07  Milan Zamazal  <pdm@freesoft.cz>

	* gnats.py (Gnats.check_problem): Fix the call to `pr-edit' (thanks
	to Jun Morimoto).

1999-08-13  Milan Zamazal  <pdm@freesoft.cz>

	* config.py (MAIL): Add commented out value for qmail.

1999-08-03  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.12.

	* gnats.py (Gnats.check_problem): Add missing `-c' option.

1999-07-28  Milan Zamazal  <pdm@freesoft.cz>

	* config.py (LANGUAGE): Change configuration variables values to
	fit with Debian.

	* gnats.py (Gnats.dump): Check for value lines starting with '>'.

1999-07-25  Milan Zamazal  <pdm@freesoft.cz>

	* access.py: Remove #! header from the module.
	* config.py: Likewise.
	* gnats.py: Likewise.
	* i18n.py: Likewise.
	* mail.py: Likewise.
	* problem.py: Likewise.

	* Makefile (install): Make FCGI link creation optional.
	Make CGI and FCGI symlinks relative.
	(compile,install): Make compilation optional.

1999-03-27  Milan Zamazal  <pdm@freesoft.cz>

	* gnats.py (Gnats.responsible_full): Rstrip line read.

	* problem.py (Problem.change): Fix bad variable name.

1999-03-25  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.11.

	* gnats.py (Gnats.responsible_full): If e-mail address is empty,
	get it from id.

	* cgiscript.py (go): Accept form as an optional argument.
	(make_edit_dict): Use `gen_submit_url' for all URLs.
	(mail_it): dtto.
	(submit): dtto.
	(query): dtto.
	(func): dtto.

	* fcgiscript.py (fgo): Use `fcgi.isFCGI()', not an endless loop.
	(fgo): Get form data and pass them to `go'.

1999-03-24  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.10.

	* cgiscript.py (query): Fix category limiting.
	(gen_submit_url): New function.
	(go): Add it to `BASIC_PARAMS'.
	(url_path): Use SCRIPT_NAME, not REQUEST_URI.
	(query): Consider PATH_INFO when generating URLs.

	* gnats.py (Gnats.query): Skip empty items.
	(Gnats.responsible_full): Return full e-mail addresses.

1999-03-23  Milan Zamazal  <pdm@freesoft.cz>

	* Makefile (compile-pcgi): Remove.
	(compile-fcgi): Remove.
	(fcgi.so): Remove.
	(fcgimodule.o): Remove.
	(install): Change FCGI installation.
	(mostlyclean): Remove old FCGI stuff.
	(dist): dtto.

	* fcgiscript.py: New module.

	* cgiscript.py (go): Initialize `BASIC_PARAMS' here, not at top
	level.
	(go): Support the `PATH_INFO' Apache variable.

	* problem.py (Problem.change): Update descriptive fields only when
	there is non-empty change.

1999-03-11  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.9.

1999-03-07  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.8.

	* cgiscript.py (html_dump): Add subjects to mail links.

	* gnats.py (Gnats.id2email): Use `_full' version of `responsible'
	and `submitters'.

	* cgiscript.py (submit): Check for no categories.
	(make_edit_dict): More robust category retrieval; sort categories.
	(mail_it): Exchange `replyto' and `subject' arguments.

	* gnats.py (Gnats.dump): Encode headers and add MIME headers.
	(Gnats.dump): Add `To' and `Date' headers.

	* mail.py (mimify_message): New function.
	(mail): Use it.
	(mimify_header_value): New function.
	(date): New function.

1999-03-03  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.7.

	* Makefile: PCGI support.
	
	* pcgi/: Create PCGI wrappers.

1999-03-02  Milan Zamazal  <pdm@freesoft.cz>

	* cgiscript.py: FastCGI support.

	* Makefile: Support for FastCGI shared module.

	* gnats.py (Gnats.id2email): Rewritten; use self.responsible() and
	self.submitters().

	* mail.py (full_address): Return address directly if empty.

	* cgiscript.py (query): Remove debugging garbage.
	(query): Handle case with no available categories.

	* gnats.py (Gnats.responsible_full): Fix docstring.
	(Gnats.responsible_full): Skip comment lines.
	(Gnats.submitters): New method.
	(Gnats.submitters_full): New method.

1999-03-01  Milan Zamazal  <pdm@freesoft.cz>

	* Makefile (install): Install as FCGI if requested.
	(dist): dtto.
	(mostlyclean): Remove them.

	* fcgi/: Create FCGI wrappers.

	* mail.py (mail): Add `replyto' argument.
	* cgiscript.py (mail_it): dtto.
	(edit): Add reply to.

	* access.py (Enumeration.granted): Add an optional argument `id'.
	* cgiscript.py (make_edit_dict): Use it.

	* cgiscript.py 	"Documentation" written.
	(categories_full): Change `GW_CATEGORIZE' to `GNATS_CATEGORIZE'.
	(query): Finer sorting.

1999-02-28  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.6.

	* cgiscript.py (index): Support local part of the index page.
	(categories_full): New function.
	(ALL): Use it.
	(query): Support result sorting.

	* config.py (LOCAL_INDEX_FUNCTION): New option.

1999-02-27  Milan Zamazal  <pdm@freesoft.cz>

	* cgiscript.py (language): Return *list* of languages.
	(expert_mode): New function.
	(output_document): Use it.
	(base_url): Removed.
	(make_edit_dict): Add `catcgi' to the output dictionary.
	(submit): dtto.
	(query): dtto.
	(url_path): New function.
	(mail_it): Use it.
	(submit): Handle categories wrt. confidentiality.
	(edit): dtto.
	(edit): Check access according to the problem instance.
	(query): dtto.
	(edit): Fix `how-to-fix' to `fix'.
	(edit): Report error if no change requested.
	(query): Use `url_path' instead of `base_url'.
	(query): Consider expert mode.
	(categories): New function.
	(go): New script name `categories'.
	(VERSION): Increment.
	(expert_mode): Use `GNATS_EXPERT_MODE', not `EXPERT_MODE'.
	(edit): Allow editing synopsis.

	* config.py (HOST_URL): New option.
	(DICTIONARY_DIR_LOCAL): New option.
	(AUTO_CONFIDENTIAL): New option.
	
	* gnats.py (Gnats.query): Allow translation of an error message.
	(Gnats.update_trail): Do not insert `\n' into audit-trail if no
	change.

	* i18n.py (Language._set_language): Allow list of languages as an
	argument; consider their priority according to available catalogs.
	(Interface.set_language): Update docstring appropriately.

	* mail.py (mail): Encode mails using `mimify'.

	* problem.py (Problem.change): Do not audit-trail to
	self._changes, if no change happened.
	(Problem.originator): Get originator's e-mail from items[e-mail].
	(Problem.confidential): Fix wrong condition.

	* Makefile (install): Install `categories.cgi' too.

1999-02-23  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.5.

	* cgiscript.py (submit): Fix name of `fix'.
	(index): Add `idrequestp' to the dictionary.
	(report_access_denied): Use `report_error', not `output_document'.

	* config.py (DISPLAY_IDREQUEST): New option.
	(MAIL): Add necessary options to sendmail.

	* mail.py: Add missing imports.

	* cgiscript.py (html_dump): Escape some fields.
	(html_dump): Make links to originator and responsible if possible.
	(make_edit_dict): Add responsible to the dictionary.
	(make_edit_dict): Generate changer list differently and consider
	autentized identity.
	(edit): Generate more informational mail subject.
	(edit): Add new line after `Reason' in message.
	(edit): Insert missing `break' in looking through categories.
	(edit): Do not CC to notified in each of e-mails sent.
	(edit): Send CC to old notified when changing responsible.
	(make_edit_dict): Add `confidentialp' to the dictionary.
	(mail_it): Fix `From' header.

	* Makefile (install): Create symbolic links.

	* Release 0.4.

	* problem.py (Problem.change): Fix typo `audit_trail'.

	* gnats.py (Gnats._unlock): Fix typo `comand'.

1999-02-22  Milan Zamazal  <pdm@freesoft.cz>

	* cgiscript.py: Fix `access.' and `access.Access' references.
	(make_edit_dict): Use HTMLgen.
	(make_edit_dict): Add `config' and `dump' to the display
	dictionary and remove `problem'.
	(mail): Name changed to `mail_it'.
	(mail_it): Use `mail.mail'.
	(edit): Use new `mail_it'.
	(edit): Send CC to notify addresses.
	(html_dump): New function.
	(submit): Use HTMLgen, etc.
	(submit): Fill in originator's name and e-mail.
	(view): Add `dump' to output dictionary.
	(query): Use HTMLgen, etc.

	* config.py (DISPLAY_CONFIDENTIAL): New flag.
	(DISPLAY_ORGANIZATION): New flag.

	* cgiscript.py: Import from gnats2w.
	(BASIC_PARAMS): Remove `base'.
	(output_document): Create `base' and add language code to it.
	(query): Fix non-confidential access.

	* mail.py: Import from gnats2w.

	* gnats.py: Import from gnats2w.
	(Gnats.categories_full): New method.

	* problem.py: Import from gnats2w.
	(Problem.originator): New method.

	* i18n.py: Import from gnats2w and return general import of
	`config'.
	(Language._set_language): Set self._language here, not in the
	constructor.

	* access.py: Import from gnats2w.
	(Enumeration): More flexible rights, changes in the format of the
	access definition.
	(Enumeration.granted): Fix `definiton' typo.
	
	* config.py (init): New method.  Avoid circular module
	dependencies.

	* __init__.py: Run config.init().

	* Makefile (install): Install into
	$(TARGET_DIR) == $(PYTHON_DIR)/gnats2w.

1999-02-21  Milan Zamazal  <pdm@freesoft.cz>

	* cgiscript.py: Use HTMLgen.
	(escape): Remove.
	(report_error): Use `HTMLgen.escape' instead of `cgi.escape'.
	(report_traceback): dtto.
	(make_edit_dict): Use `HTMLgen.escape' instead of `escape'.
	(edit): dtto.
	(query): dtto.

	* gnats.py (Gnats.date): New method.
	(Gnats.update_trail): New method.

	* problem.py: Documentation written.
	Remove unnecessary imports.
	(Problem.html_print): Removed.
	(Problem.html_print_errors): Removed.
	(Problem.errors): New method.
	(Problem._tags): Removed.
	(Problem): Extend documentation.
	(Problem.update): Move audit trail updating to gnats.py.
	(Problem.change): Call audit trail update here.

	* access.py (HTTPS.name): Fix the SSL variable name.
	(HTTPS.email): dtto.

	* i18n.py: Import only constants needed from config.
	Document the module.
	(Language.charset): New method.
	(Language._set_language): New method.
	(Language.__init__): Use it.
	(Interface.set_language): dtto.
	(Interface): Inherit most methods from `Language'.
	(Language.__init__): Document the `language' argument better.
	(Language): Document it.
	(Interface): dtto.

	* config.py (language): Change name to upper case.
	* config.py: Move `ACCESS' towards the end of file.

	* mail.py (mail): Correct invalid argument name `from'.

	* gnats.py (Gnats._protect): New method.
	(Gnats._get_problem): Use it.
	(Gnats._lock): dtto.
	(Gnats._unlock): dtto.
	(Gnats.categories): dtto.
	(Gnats.responsible_full): dtto.
	(Gnats.id2email): dtto.
	(Gnats.update_problem): dtto.
	(Gnats.query): dtto.
	(Gnats._lock): Add apostrophes around shell command arguments.
	(Gnats._unlock): dtto.
	(Gnats.categories): dtto.
	(Gnats.update_problem): dtto.
	(Gnats.update_problem): Better command composition.

1999-02-20  Milan Zamazal  <pdm@freesoft.cz>

	* mail.py: New module.

	* gnats.py: Module documentation written.
	(Gnats._unlock): Separate command composition and performing.
	(Gnats.id2email): Replace address creation by call to
	`mail.full_address'.
	(Gnats): Full documentation.
	
	* access.py: Module documentation written.
	(SUBMIT, VIEW, EDIT): Constants moved to the `Access' class.
	(Access.identity): Meaning and return value changed.
	(Access.identity_responsible): Removed.
	(Access.name): New method.
	(Access.email): New method.
	(Access.granted): Change arguments and documentation.
	(Email_Identity: New class.
	(HTTPS): New class.
	(Enumeration): New class.

1999-02-19  Milan Zamazal  <pdm@freesoft.cz>

	* config.py (DEFAULT_CATEGORY): New configuration parameter.

	* cgiscript.py (language): Fix still wrong language extraction.
	(escape): New function.
	(edit): Use it.
	(query): dtto.
	(make_edit_dict): Add `synopsis' to the dictionary.
	(query): Use mainly template for reporting number of problems.
	(mail): Fix generated URL.
	(submit): Consider default category.

	* i18n.py (Language.__call__): Fix wrong parenthesis.
	(LANG_CODING): New constant.

1999-02-18  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.3.

	* gnats.py (Gnats.version): New method.
	(Gnats._lock): Allow random timeouts.  Shorten default timeout and
	make it random.

	* problem.py (Problem.confidential): New method.
	(Problem.html_print): CGI escape everything.
	(Problem.html_print_errors): CGI escape.

	* cgiscript.py (edit): Allow non-confidential only access.
	(query): dtto.
	(view): dtto.
	(VERSION): New constant.
	(go): Add `versions' to `BASIC_PARAMS'.
	(language): Handle list of languages too.
	(edit): Remove redundancy in address arguments to `mail'.
	(edit): Notify old responsible when responsible changed.
	(edit): Initialize `release' in `new_items' with an empty string.
	(edit): Strip `rresponsible'.
	(edit): Fixed fake reference to `responsible' in generating of
	`big_changes'.
	(edit): CGI escape more items.
	(mail): Append URL of problem view to mail notifications.  New
	argument.
	(edit): Add this argument.
	(query): Output number of problems found.
	(submit): Check e-mail was given.
	(make_edit_dict): If changer is not known, set `' as the default
	value of changer.
	(edit): Complain if no changer specified.

	* access.py (Access.DENIED, Access.RESTRICTED, Access.FULL): New
	constants for scaling access types.
	(Access.granted): Document them and define their usage.

1999-02-17  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.2.

	* cgiscript.py (remove_crs): New function.
	(edit): Use it.
	(submit): dtto.
	(edit): Remove redundant code in adding descriptions, etc.
	(edit): Internationalize e-mail messages.
	(view): Add missing internatiolization.
	(request): dtto.
	(request): Use request, not submit, templates.
	(index,submit,edit,view,request): Add doc string.
	(edit): Get changes from problem before clearing them by update.
	(edit): Use originator_email address when mailing to originator.

	* problem.py (Problem.ok): Replace incorrect call of `pr-edit' by
	correct call of database method.
	(Problem.change): Add newline between multiline item changes.

	* gnats.py (Gnats._lock): New method.
	(Gnats._unlock): dtto.
	(Gnats.update_problem): Use them.
	(Gnats.update_problem): Use `Popen3' instead of `popen3' and check
	real return value of the run program.
	(Gnats.check_problem): New method.

	* cgiscript.py (request): Correct `value' -> `values'.

1999-02-16  Milan Zamazal  <pdm@freesoft.cz>

	* Makefile (install): New script request.

	* cgiscript.py (mail): Use mail, not mailsubj.
	(edit): Let `changes' be a string.
	(edit): Separate new descriptions etc. by an empty line.
	(output_document): Use `_', not `-', as a language separator in
	file name.
	(go): New script `request'.
	(request): Handle it.

1999-02-14  Milan Zamazal  <pdm@freesoft.cz>

	* Release 0.1.


