X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=roundup%2Fconfiguration.py;h=8b862627d1d9f5a84192c11b9689f78a9013bc21;hb=baf888b4cae34fe78067ce54099db284e964829a;hp=b6571b01449fc8ac1ae5da635a5b9faf0bbd88e4;hpb=0de2c5584be47b04af7b389a1812a478a302dbc6;p=roundup.git diff --git a/roundup/configuration.py b/roundup/configuration.py index b6571b0..8b86262 100644 --- a/roundup/configuration.py +++ b/roundup/configuration.py @@ -530,6 +530,13 @@ SETTINGS = ( "stop-words (eg. A,AND,ARE,AS,AT,BE,BUT,BY, ...)"), (OctalNumberOption, "umask", "02", "Defines the file creation mode mask."), + (IntegerNumberOption, 'csv_field_size', '131072', + "Maximum size of a csv-field during import. Roundups export\n" + "format is a csv (comma separated values) variant. The csv\n" + "reader has a limit on the size of individual fields\n" + "starting with python 2.5. Set this to a higher value if you\n" + "get the error 'Error: field larger than field limit' during\n" + "import."), )), ("tracker", ( (Option, "name", "Roundup issue tracker", @@ -597,8 +604,30 @@ SETTINGS = ( (NullableOption, 'read_default_group', 'roundup', "Name of the group to use in the MySQL defaults file (.my.cnf).\n" "Only used in MySQL connections."), + (IntegerNumberOption, 'sqlite_timeout', '30', + "Number of seconds to wait when the SQLite database is locked\n" + "Default: use a 30 second timeout (extraordinarily generous)\n" + "Only used in SQLite connections."), (IntegerNumberOption, 'cache_size', '100', "Size of the node cache (in elements)"), + (BooleanOption, "allow_create", "yes", + "Setting this option to 'no' protects the database against table creations."), + (BooleanOption, "allow_alter", "yes", + "Setting this option to 'no' protects the database against table alterations."), + (BooleanOption, "allow_drop", "yes", + "Setting this option to 'no' protects the database against table drops."), + (NullableOption, 'template', '', + "Name of the PostgreSQL template for database creation.\n" + "For database creation the template used has to match\n" + "the character encoding used (UTF8), there are different\n" + "PostgreSQL installations using different templates with\n" + "different encodings. If you get an error:\n" + " new encoding (UTF8) is incompatible with the encoding of\n" + " the template database (SQL_ASCII)\n" + " HINT: Use the same encoding as in the template database,\n" + " or use template0 as template.\n" + "then set this option to the template name given in the\n" + "error message."), ), "Settings in this section are used" " by RDBMS backends only" ), @@ -718,6 +747,10 @@ SETTINGS = ( "will match an issue for the interval after the issue's\n" "creation or last activity. The interval is a standard\n" "Roundup interval."), + (BooleanOption, "subject_updates_title", "yes", + "Update issue title if incoming subject of email is different.\n" + "Setting this to \"no\" will ignore the title part of" + " the subject\nof incoming email messages.\n"), (RegExpOption, "refwd_re", "(\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+", "Regular expression matching a single reply or forward\n" "prefix prepended by the mailer. This is explicitly\n" @@ -733,6 +766,10 @@ SETTINGS = ( "Regular expression matching end of line."), (RegExpOption, "blankline_re", r"[\r\n]+\s*[\r\n]+", "Regular expression matching a blank line."), + (BooleanOption, "unpack_rfc822", "no", + "Unpack attached messages (encoded as message/rfc822 in MIME)\n" + "as multiple parts attached as files to the issue, if not\n" + "set we handle message/rfc822 attachments as a single file."), (BooleanOption, "ignore_alternatives", "no", "When parsing incoming mails, roundup uses the first\n" "text/plain part it finds. If this part is inside a\n" @@ -1242,6 +1279,14 @@ class CoreConfig(Config): if home_dir is None: self.init_logging() + def copy(self): + new = CoreConfig() + new.sections = list(self.sections) + new.section_descriptions = dict(self.section_descriptions) + new.section_options = dict(self.section_options) + new.options = dict(self.options) + return new + def _get_unset_options(self): need_set = Config._get_unset_options(self) # remove MAIL_PASSWORD if MAIL_USER is empty @@ -1271,8 +1316,8 @@ class CoreConfig(Config): return _file = self["LOGGING_FILENAME"] - # set file & level on the root logger - logger = logging.getLogger() + # set file & level on the roundup logger + logger = logging.getLogger('roundup') if _file: hdlr = logging.FileHandler(_file) else: @@ -1281,6 +1326,9 @@ class CoreConfig(Config): '%(asctime)s %(levelname)s %(message)s') hdlr.setFormatter(formatter) # no logging API to remove all existing handlers!?! + for h in logger.handlers: + h.close() + logger.removeHandler(hdlr) logger.handlers = [hdlr] logger.setLevel(logging._levelNames[self["LOGGING_LEVEL"] or "ERROR"])