From d970d99f42c1a445d401d85b7d9dbfcd9d5e9648 Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Wed, 13 Aug 2014 10:23:58 +0200 Subject: [PATCH] 7.0: fix flake8 errors --- base_optional_quick_create/model.py | 8 +- configuration_helper/__openerp__.py | 15 +- configuration_helper/config.py | 22 ++- email_template_template/__openerp__.py | 24 +-- .../match_algorithm/base.py | 4 +- .../model/fetchmail_server.py | 17 +- .../model/fetchmail_server_folder.py | 12 +- import_odbc/import_odbc.py | 127 +++++++++----- mail_environment/__openerp__.py | 6 +- mail_environment/env_mail.py | 25 ++- scheduler_error_mailer/__openerp__.py | 3 +- scheduler_error_mailer/ir_cron.py | 16 +- super_calendar/__openerp__.py | 11 +- super_calendar/data/meetings.png | Bin 0 -> 25810 bytes super_calendar/data/month_calendar.png | Bin 0 -> 71857 bytes super_calendar/data/phone_calls.png | Bin 0 -> 26584 bytes super_calendar/data/week_calendar.png | Bin 0 -> 79491 bytes super_calendar/super_calendar.py | 158 ++++++++++-------- users_ldap_groups/__openerp__.py | 10 +- users_ldap_groups/users_ldap_groups.py | 47 ++++-- .../users_ldap_groups_operators.py | 31 +++- users_ldap_mail/__openerp__.py | 9 +- users_ldap_mail/users_ldap_model.py | 10 +- users_ldap_populate/__openerp__.py | 7 +- 24 files changed, 358 insertions(+), 204 deletions(-) create mode 100644 super_calendar/data/meetings.png create mode 100644 super_calendar/data/month_calendar.png create mode 100644 super_calendar/data/phone_calls.png create mode 100644 super_calendar/data/week_calendar.png diff --git a/base_optional_quick_create/model.py b/base_optional_quick_create/model.py index 470659443..f5c0283fd 100644 --- a/base_optional_quick_create/model.py +++ b/base_optional_quick_create/model.py @@ -33,7 +33,9 @@ class ir_model(orm.Model): def _wrap_name_create(self, old_create, model): def wrapper(cr, uid, name, context=None): - raise orm.except_orm(_('Error'), _("Can't create quickly. Opening create form")) + raise orm.except_orm(_('Error'), + _("Can't create quickly. " + "Opening create form")) return wrapper def _register_hook(self, cr, ids=None): @@ -44,7 +46,9 @@ class ir_model(orm.Model): model_name = model.model model_obj = self.pool.get(model_name) if not hasattr(model_obj, 'check_quick_create'): - model_obj.name_create = self._wrap_name_create(model_obj.name_create, model_name) + model_obj.name_create = self._wrap_name_create( + model_obj.name_create, + model_name) model_obj.check_quick_create = True return True diff --git a/configuration_helper/__openerp__.py b/configuration_helper/__openerp__.py index 7ca0618fb..2c70b9ff4 100644 --- a/configuration_helper/__openerp__.py +++ b/configuration_helper/__openerp__.py @@ -35,8 +35,8 @@ Configuration Helper This module : - * create automatically related fields in 'whatiwant.config.settings' - using those defined in 'res.company' : it avoid duplicated field definitions. + * create automatically related fields in 'whatiwant.config.settings' using + those defined in 'res.company' : it avoid duplicated field definitions. * company_id field with default value is created * onchange_company_id is defined to update all related fields * supported fields: char, text, integer, float, datetime, date, boolean, m2o @@ -59,8 +59,11 @@ How to use Roadmap ------- - * support (or check support) for these field types : o2m, m2m, reference, property, selection - * automatically generate a default view for 'whatiwant.config.settings' (in --debug ?) + + * support (or check support) for these field types : o2m, m2m, reference, + property, selection + * automatically generate a default view for 'whatiwant.config.settings' + (in --debug?) Contributors @@ -68,8 +71,8 @@ Contributors * David BEAL * Sébastien BEAU -* Yannick Vaucher, Camptocamp, (code refactoring from his module 'delivery_carrier_label_postlogistics') - +* Yannick Vaucher, Camptocamp, (code refactoring from his module + 'delivery_carrier_label_postlogistics') """, 'website': 'http://www.akretion.com/', 'data': [ diff --git a/configuration_helper/config.py b/configuration_helper/config.py index 73fd58e2f..6ebc80fcf 100644 --- a/configuration_helper/config.py +++ b/configuration_helper/config.py @@ -39,22 +39,23 @@ class AbstractConfigSettings(orm.AbstractModel): def __init__(self, pool, cr): super(AbstractConfigSettings, self).__init__(pool, cr) if self._companyObject: - for field_key in self._companyObject._columns: + company_cols = self._companyObject._columns + for field_key in company_cols: # allows to exclude some field if self._filter_field(field_key): args = ('company_id', field_key) kwargs = { - 'string': self._companyObject._columns[field_key].string, - 'help': self._companyObject._columns[field_key].help, - 'type': self._companyObject._columns[field_key]._type, + 'string': company_cols[field_key].string, + 'help': company_cols[field_key].help, + 'type': company_cols[field_key]._type, } - if '_obj' in self._companyObject._columns[field_key].__dict__.keys(): + if '_obj' in company_cols[field_key].__dict__: kwargs['relation'] = \ - self._companyObject._columns[field_key]._obj + company_cols[field_key]._obj if '_domain' in \ - self._companyObject._columns[field_key].__dict__.keys(): + company_cols[field_key].__dict__: kwargs['domain'] = \ - self._companyObject._columns[field_key]._domain + company_cols[field_key]._domain field_key = re.sub('^' + self._prefix, '', field_key) self._columns[field_key] = \ fields.related(*args, **kwargs) @@ -74,7 +75,10 @@ class AbstractConfigSettings(orm.AbstractModel): 'company_id': _default_company, } - def field_to_populate_as_related(self, cr, uid, field, company_cols, context=None): + def field_to_populate_as_related(self, cr, uid, + field, + company_cols, + context=None): """Only fields which comes from company with the right prefix must be defined as related""" if self._prefix + field in company_cols: diff --git a/email_template_template/__openerp__.py b/email_template_template/__openerp__.py index e3dddb5b3..c08c4e13c 100644 --- a/email_template_template/__openerp__.py +++ b/email_template_template/__openerp__.py @@ -26,11 +26,12 @@ 'complexity': "expert", "description": """If an organisation's email layout is a bit more complicated, changes can be tedious when having to do that across several email -templates. So this addon allows to define templates for mails that is referenced -by other mail templates. -This way we can put the layout parts into the template template and only content -in the other templates. Changing the layout is then only a matter of changing -the template template. +templates. So this addon allows to define templates for mails that is +referenced by other mail templates. + +This way we can put the layout parts into the template template and only +content in the other templates. Changing the layout is then only a matter of +changing the template template. ----- Usage @@ -49,7 +50,8 @@ For example, create a template template Example Corp logo Example Corp header - ${object.body_text} <- this gets evaluated to the body_text of a template using this template template + ${object.body_text} <- this gets evaluated to the body_text of a + template using this template template Example Corp Example street 42 Example city @@ -61,7 +63,8 @@ Then in your template you write Dear ${object.partner_id.name}, - Your order has been booked on date ${object.date} for a total amount of ${object.sum}. + Your order has been booked on date ${object.date} + for a total amount of ${object.sum}. And it will be evaluated to @@ -71,7 +74,8 @@ And it will be evaluated to Example Corp header Dear Jane Doe, - Your order has been booked on date 04/17/2013 for a total amount of 42. + Your order has been booked on date 04/17/2013 + for a total amount of 42. Example Corp Example street 42 Example city @@ -80,8 +84,8 @@ And it will be evaluated to Given the way evaluation works internally (body_text of the template template is evaluated two times, first with the instance of email.template of your own template, then with the object your template refers to), you can do some -trickery if you know that a template template is always used with the same -kind of model (that is, models that have the same field name): +trickery if you know that a template template is always used with the same kind +of model (that is, models that have the same field name): In your template template: diff --git a/fetchmail_attach_from_folder/match_algorithm/base.py b/fetchmail_attach_from_folder/match_algorithm/base.py index a3d9ba6b8..34e7b3dbe 100644 --- a/fetchmail_attach_from_folder/match_algorithm/base.py +++ b/fetchmail_attach_from_folder/match_algorithm/base.py @@ -26,10 +26,10 @@ class base(object): '''Name shown to the user''' required_fields = [] - '''Fields on fetchmail_server folder that are required for this algorithm''' + '''Fields on fetchmail_server folder required for this algorithm''' readonly_fields = [] - '''Fields on fetchmail_server folder that are readonly for this algorithm''' + '''Fields on fetchmail_server folder readonly for this algorithm''' def search_matches(self, cr, uid, conf, mail_message, mail_message_org): '''Returns ids found for model with mail_message''' diff --git a/fetchmail_attach_from_folder/model/fetchmail_server.py b/fetchmail_attach_from_folder/model/fetchmail_server.py index c1673c382..bc6c5443d 100644 --- a/fetchmail_attach_from_folder/model/fetchmail_server.py +++ b/fetchmail_attach_from_folder/model/fetchmail_server.py @@ -93,15 +93,16 @@ class fetchmail_server(Model): match_algorithm = folder.get_algorithm() if connection.select(folder.path)[0] != 'OK': - logger.error( - 'Could not open mailbox %s on %s' % (folder.path, this.server)) + logger.error('Could not open mailbox %s on %s', + folder.path, + this.server) connection.select() continue result, msgids = this.get_msgids(connection) if result != 'OK': - logger.error( - 'Could not search mailbox %s on %s' % ( - folder.path, this.server)) + logger.error('Could not search mailbox %s on %s', + folder.path, + this.server) continue for msgid in msgids[0].split(): @@ -127,8 +128,10 @@ class fetchmail_server(Model): result, msgdata = connection.fetch(msgid, '(RFC822)') if result != 'OK': - logger.error( - 'Could not fetch %s in %s on %s' % (msgid, folder.path, this.server)) + logger.error('Could not fetch %s in %s on %s', + msgid, + folder.path, + this.server) continue mail_message = self.pool.get('mail.thread').message_parse( diff --git a/fetchmail_attach_from_folder/model/fetchmail_server_folder.py b/fetchmail_attach_from_folder/model/fetchmail_server_folder.py index 8021332e2..9c94c0845 100644 --- a/fetchmail_attach_from_folder/model/fetchmail_server_folder.py +++ b/fetchmail_attach_from_folder/model/fetchmail_server_folder.py @@ -31,11 +31,13 @@ class fetchmail_server_folder(Model): def _get_match_algorithms(self): def get_all_subclasses(cls): - return cls.__subclasses__() + [subsub - for sub in cls.__subclasses__() - for subsub in get_all_subclasses(sub)] - return dict([(cls.__name__, cls) for cls in get_all_subclasses( - match_algorithm.base.base)]) + return (cls.__subclasses__() + + [subsub + for sub in cls.__subclasses__() + for subsub in get_all_subclasses(sub)]) + return dict([(cls.__name__, cls) + for cls in get_all_subclasses( + match_algorithm.base.base)]) def _get_match_algorithms_sel(self, cr, uid, context=None): algorithms = [] diff --git a/import_odbc/import_odbc.py b/import_odbc/import_odbc.py index 7d418bee0..5304ada84 100644 --- a/import_odbc/import_odbc.py +++ b/import_odbc/import_odbc.py @@ -35,25 +35,44 @@ class import_odbc_dbtable(orm.Model): _columns = { 'name': fields.char('Datasource name', required=True, size=64), 'enabled': fields.boolean('Execution enabled'), - 'dbsource_id': fields.many2one('base.external.dbsource', 'Database source', required=True), - 'sql_source': fields.text('SQL', required=True, help='Column names must be valid "import_data" columns.'), + 'dbsource_id': fields.many2one('base.external.dbsource', + 'Database source', + required=True), + 'sql_source': fields.text('SQL', + required=True, + help='Column names must be valid ' + '"import_data" columns.'), 'model_target': fields.many2one('ir.model', 'Target object'), - 'noupdate': fields.boolean('No updates', help="Only create new records; disable updates to existing records."), - 'exec_order': fields.integer('Execution order', help="Defines the order to perform the import"), - 'last_sync': fields.datetime('Last sync date', - help="Datetime for the last succesfull sync." - "\nLater changes on the source may not be replicated on the destination"), - 'start_run': fields.datetime('Time started', readonly=True), - 'last_run': fields.datetime('Time ended', readonly=True), - 'last_record_count': fields.integer('Last record count', readonly=True), - 'last_error_count': fields.integer('Last error count', readonly=True), - 'last_warn_count': fields.integer('Last warning count', readonly=True), + 'noupdate': fields.boolean('No updates', + help="Only create new records; disable " + "updates to existing records."), + 'exec_order': fields.integer('Execution order', + help="Defines the order to perform " + "the import"), + 'last_sync': fields.datetime( + 'Last sync date', + help="Datetime for the last succesfull sync.\n" + "Later changes on the source may not be replicated " + "on the destination"), + 'start_run': fields.datetime('Time started', + readonly=True), + 'last_run': fields.datetime('Time ended', + readonly=True), + 'last_record_count': fields.integer('Last record count', + readonly=True), + 'last_error_count': fields.integer('Last error count', + readonly=True), + 'last_warn_count': fields.integer('Last warning count', + readonly=True), 'last_log': fields.text('Last run log', readonly=True), - 'ignore_rel_errors': fields.boolean('Ignore relationship errors', - help="On error try to reimport rows ignoring relationships."), - 'raise_import_errors': fields.boolean('Raise import errors', - help="Import errors not handled, intended for debugging purposes." - "\nAlso forces debug messages to be written to the server log."), + 'ignore_rel_errors': fields.boolean( + 'Ignore relationship errors', + help="On error try to reimport rows ignoring relationships." + ), + 'raise_import_errors': fields.boolean( + 'Raise import errors', + help="Import errors not handled, intended for debugging purposes." + "\nAlso forces debug messages to be written to the server log."), } _defaults = { 'enabled': True, @@ -64,7 +83,7 @@ class import_odbc_dbtable(orm.Model): """Import data and returns error msg or empty string""" def find_m2o(field_list): - """"Find index of first column with a one2many field""" + """Find index of first column with a one2many field""" for i, x in enumerate(field_list): if len(x) > 3 and x[-3:] == ':id' or x[-3:] == '/id': return i @@ -72,21 +91,30 @@ class import_odbc_dbtable(orm.Model): def append_to_log(log, level, obj_id='', msg='', rel_id=''): if '_id_' in obj_id: - obj_id = '.'.join(obj_id.split('_')[:-2]) + ': ' + obj_id.split('_')[-1] + obj_id = ('.'.join(obj_id.split('_')[:-2]) + + ': ' + + obj_id.split('_')[-1]) if ': .' in msg and not rel_id: rel_id = msg[msg.find(': .')+3:] if '_id_' in rel_id: - rel_id = '.'.join(rel_id.split('_')[:-2]) + ': ' + rel_id.split('_')[-1] + rel_id = ('.'.join(rel_id.split('_')[:-2]) + + ': ' + + rel_id.split('_')[-1]) msg = msg[:msg.find(': .')] - log['last_log'].append('%s|%s\t|%s\t|%s' % (level.ljust(5), obj_id, rel_id, msg)) + log['last_log'].append('%s|%s\t|%s\t|%s' % (level.ljust(5), + obj_id, + rel_id, + msg)) _logger.debug(data) cols = list(flds) # copy to avoid side effects errmsg = str() if table_obj.raise_import_errors: - model_obj.import_data(cr, uid, cols, [data], noupdate=table_obj.noupdate) + model_obj.import_data(cr, uid, cols, [data], + noupdate=table_obj.noupdate) else: try: - model_obj.import_data(cr, uid, cols, [data], noupdate=table_obj.noupdate) + model_obj.import_data(cr, uid, cols, [data], + noupdate=table_obj.noupdate) except: errmsg = str(sys.exc_info()[1]) if errmsg and not table_obj.ignore_rel_errors: @@ -98,16 +126,22 @@ class import_odbc_dbtable(orm.Model): # Warn and retry ignoring many2one fields... append_to_log(log, 'WARN', data, errmsg) log['last_warn_count'] += 1 - # Try ignoring each many2one (tip: in the SQL sentence select more problematic FKs first) + # Try ignoring each many2one (tip: in the SQL sentence select more + # problematic FKs first) i = find_m2o(cols) if i >= 0: # Try again without the [i] column del cols[i] del data[i] - self._import_data(cr, uid, cols, data, model_obj, table_obj, log) + self._import_data(cr, uid, cols, + data, + model_obj, + table_obj, + log) else: # Fail - append_to_log(log, 'ERROR', data, 'Removed all m2o keys and still fails.') + append_to_log(log, 'ERROR', data, + 'Removed all m2o keys and still fails.') log['last_error_count'] += 1 return False return True @@ -123,12 +157,15 @@ class import_odbc_dbtable(orm.Model): if not obj.enabled: continue # skip - _logger.setLevel(obj.raise_import_errors and logging.DEBUG or _loglvl) - _logger.debug('Importing %s...' % obj.name) + _logger.setLevel(obj.raise_import_errors and + logging.DEBUG or + _loglvl) + _logger.debug('Importing %s...', obj.name) - # now() microseconds are stripped to avoid problem with SQL smalldate + # now() microseconds are stripped to avoid problem with SQL + # smalldate # TODO: convert UTC Now to local timezone - # http://stackoverflow.com/questions/4770297/python-convert-utc-datetime-string-to-local-datetime + # http://stackoverflow.com/questions/4770297 model_name = obj.model_target.model model_obj = self.pool.get(model_name) xml_prefix = model_name.replace('.', '_') + "_id_" @@ -150,15 +187,19 @@ class import_odbc_dbtable(orm.Model): obj.sql_source, params, metadata=True) # Exclude columns titled "None"; add (xml_)"id" column - cidx = [i for i, x in enumerate(res['cols']) if x.upper() != 'NONE'] - cols = [x for i, x in enumerate(res['cols']) if x.upper() != 'NONE'] + ['id'] + cidx = [i for i, x in enumerate(res['cols']) + if x.upper() != 'NONE'] + cols = [x for i, x in enumerate(res['cols']) + if x.upper() != 'NONE'] + ['id'] # Import each row: for row in res['rows']: - # Build data row; import only columns present in the "cols" list + # Build data row; import only columns present in the "cols" + # list data = list() for i in cidx: - # TODO: Handle imported datetimes properly - convert from localtime to UTC! + # TODO: Handle imported datetimes properly - convert from + # localtime to UTC! v = row[i] if isinstance(v, str): v = v.strip() @@ -169,7 +210,8 @@ class import_odbc_dbtable(orm.Model): log['last_record_count'] += 1 self._import_data(cr, uid, cols, data, model_obj, obj, log) if log['last_record_count'] % 500 == 0: - _logger.info('...%s rows processed...' % (log['last_record_count'])) + _logger.info('...%s rows processed...', + (log['last_record_count'])) # Finished importing all rows # If no errors, write new sync date @@ -180,12 +222,19 @@ class import_odbc_dbtable(orm.Model): level = logging.WARN if log['last_error_count']: level = logging.ERROR - _logger.log(level, 'Imported %s , %d rows, %d errors, %d warnings.' % ( - model_name, log['last_record_count'], log['last_error_count'], - log['last_warn_count'])) + _logger.log(level, + 'Imported %s , %d rows, %d errors, %d warnings.', + model_name, + log['last_record_count'], + log['last_error_count'], + log['last_warn_count']) # Write run log, either if the table import is active or inactive if log['last_log']: - log['last_log'].insert(0, 'LEVEL|== Line == |== Relationship ==|== Message ==') + log['last_log'].insert(0, + 'LEVEL|' + '== Line == |' + '== Relationship ==|' + '== Message ==') log.update({'last_log': '\n'.join(log['last_log'])}) log.update({'last_run': datetime.now().replace(microsecond=0)}) self.write(cr, uid, [obj.id], log) diff --git a/mail_environment/__openerp__.py b/mail_environment/__openerp__.py index 29970701f..f584873eb 100644 --- a/mail_environment/__openerp__.py +++ b/mail_environment/__openerp__.py @@ -59,7 +59,11 @@ password = openerp 'author': 'Camptocamp', 'license': 'AGPL-3', 'website': 'http://openerp.camptocamp.com', - 'depends': ['mail', 'fetchmail', 'server_environment', 'server_environment_files', 'crm'], + 'depends': ['mail', + 'fetchmail', + 'server_environment', + 'server_environment_files', + 'crm'], 'init_xml': [], 'update_xml': ['mail_view.xml'], 'demo_xml': [], diff --git a/mail_environment/env_mail.py b/mail_environment/env_mail.py index 252703d2a..114ad32b2 100644 --- a/mail_environment/env_mail.py +++ b/mail_environment/env_mail.py @@ -41,7 +41,8 @@ class IrMail(osv.osv): if serv_config.has_section(global_section_name): config_vals.update((serv_config.items(global_section_name))) - custom_section_name = '.'.join((global_section_name, mail_server.name)) + custom_section_name = '.'.join((global_section_name, + mail_server.name)) if serv_config.has_section(custom_section_name): config_vals.update(serv_config.items(custom_section_name)) @@ -65,7 +66,8 @@ class IrMail(osv.osv): string='SMTP Port', type="integer", multi='outgoing_mail_config', - help="SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.", + help=("SMTP Port. Usually 465 for SSL, " + "and 25 or 587 for other cases."), size=5), 'smtp_user': fields.function( _get_smtp_conf, @@ -89,10 +91,12 @@ class IrMail(osv.osv): string='smtp_encryption', type="char", multi='outgoing_mail_config', - help="Choose the connection encryption scheme:\n" - "- none: SMTP sessions are done in cleartext.\n" - "- starttls: TLS encryption is requested at start of SMTP session (Recommended)\n" - "- ssl: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)", + help=("Choose the connection encryption scheme:\n" + "- none: SMTP sessions are done in cleartext.\n" + "- starttls: TLS encryption is requested at start " + "of SMTP session (Recommended)\n" + "- ssl: SMTP sessions are encrypted with SSL/TLS " + "through a dedicated port (default: 465)"), size=64)} IrMail() @@ -125,7 +129,8 @@ class FetchmailServer(osv.osv): if serv_config.has_section(global_section_name): config_vals.update(serv_config.items(global_section_name)) - custom_section_name = '.'.join((global_section_name, fetchmail.name)) + custom_section_name = '.'.join((global_section_name, + fetchmail.name)) if serv_config.has_section(custom_section_name): config_vals.update(serv_config.items(custom_section_name)) @@ -146,12 +151,14 @@ class FetchmailServer(osv.osv): operator = args[i][1] if operator == '=': for res in results: - if (res['type'] == args[i][2]) and (res['id'] not in result_ids): + if (res['type'] == args[i][2]) and \ + (res['id'] not in result_ids): result_ids.append(res['id']) elif operator == 'in': for search_vals in args[i][2]: for res in results: - if (res['type'] == search_vals) and (res['id'] not in result_ids): + if (res['type'] == search_vals) and \ + (res['id'] not in result_ids): result_ids.append(res['id']) else: continue diff --git a/scheduler_error_mailer/__openerp__.py b/scheduler_error_mailer/__openerp__.py index b1cb4dfe6..db7097fe7 100644 --- a/scheduler_error_mailer/__openerp__.py +++ b/scheduler_error_mailer/__openerp__.py @@ -33,7 +33,8 @@ Scheduler Error Mailer ====================== -This module adds the possibility to send an e-mail when a scheduler raises an error.""", +This module adds the possibility to send an e-mail when a scheduler raises an +error.""", 'author': 'Akretion', 'website': 'http://www.akretion.com/', 'depends': ['email_template'], diff --git a/scheduler_error_mailer/ir_cron.py b/scheduler_error_mailer/ir_cron.py index 8971da486..1910c408b 100644 --- a/scheduler_error_mailer/ir_cron.py +++ b/scheduler_error_mailer/ir_cron.py @@ -36,10 +36,16 @@ class ir_cron(orm.Model): 'email_template': fields.many2one( 'email.template', 'Error E-mail Template', - help="Select the email template that will be sent when this scheduler fails."), + help="Select the email template that will be sent " + "when this scheduler fails."), } - def _handle_callback_exception(self, cr, uid, model_name, method_name, args, job_id, job_exception): + def _handle_callback_exception(self, cr, uid, + model_name, + method_name, + args, + job_id, + job_exception): res = super(ir_cron, self)._handle_callback_exception( cr, uid, model_name, method_name, args, job_id, job_exception) @@ -54,7 +60,8 @@ class ir_cron(orm.Model): 'dbname': cr.dbname, } - logger.debug("Sending scheduler error email with context=%s" % context) + logger.debug("Sending scheduler error email with context=%s", + context) self.pool['email.template'].send_mail( cr, uid, my_cron.email_template.id, my_cron.id, force_send=True, context=context) @@ -67,4 +74,5 @@ class res_users(orm.Model): def test_scheduler_failure(self, cr, uid, context=None): """This function is used to test and debug this module""" - raise orm.except_orm(_('Error :'), _("Task failure with UID = %d." % uid)) + raise orm.except_orm(_('Error :'), + _("Task failure with UID = %d.") % uid) diff --git a/super_calendar/__openerp__.py b/super_calendar/__openerp__.py index 63a8a42e3..4bcae52e3 100644 --- a/super_calendar/__openerp__.py +++ b/super_calendar/__openerp__.py @@ -44,25 +44,26 @@ Super calendar → Configuration → Configurators and create a new configurator. For instance, if you want to see meetings and phone calls, you can create the following lines -.. image:: http://planet.domsense.com/wp-content/uploads/2012/04/meetings.png +.. image:: data/meetings.png :width: 400 px -.. image:: http://planet.domsense.com/wp-content/uploads/2012/04/phone_calls.png +.. image:: data/phone_calls.png :width: 400 px Then, you can use the ‘Generate Calendar’ button or wait for the scheduled action (‘Generate Calendar Records’) to be run. -When the calendar is generated, you can visualize it by the ‘super calendar’ main menu. +When the calendar is generated, you can visualize it by the ‘super calendar’ +main menu. Here is a sample monthly calendar: -.. image:: http://planet.domsense.com/wp-content/uploads/2012/04/month_calendar.png +.. image:: data/month_calendar.png :width: 400 px And here is the weekly one: -.. image:: http://planet.domsense.com/wp-content/uploads/2012/04/week_calendar.png +.. image:: data/week_calendar.png :width: 400 px As you can see, several filters are available. A typical usage consists in diff --git a/super_calendar/data/meetings.png b/super_calendar/data/meetings.png new file mode 100644 index 0000000000000000000000000000000000000000..bb359ec2ae135fc1f105a7ffce2390f9137bba29 GIT binary patch literal 25810 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 Kj#7R4*M9)Nw>H@T literal 0 HcmV?d00001 diff --git a/super_calendar/data/month_calendar.png b/super_calendar/data/month_calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3c8e863f117c06d6922b3f71cd7d9cb4d889b5 GIT binary patch literal 71857 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')ek)(ExWCIb@FEsmreO6 zY^`O z%I+=x#^wqs2E5qcRv7=X4j%4PLBFJ0&sGiWdJo(WdBy4CH92gFe$>-3K_538 zUK1`aZme_N<+ob-KzT>%NWoyRy@zlnU2hagc5y4=N8%iQgQaKWX8xs4ZEZ9G(&^S{ z>R)p4(CiPnD8{7kV>^AdaBh5hCo2|P6_0JGo|n$iT1u@yP&A_Kj3(iFtb;l6i=;8T5y1*I zpfmbLP{4{&^sz{;T(b$uPhpa*f+b}~&`;nki*TV_TLN^Vq-Tn3C`$Zng9z}t z8tP9)3p-xlg8*?XEh#26IgQoD?Tz<{21@jmP7}sa2Mt}jQD&bn?fA8mxCNog<8Soe zd13_KIR82}U$fP@P(I8lm%sEFzqp>GypU8HOMgp!T4w+Tyz{<3z(~MYKXH;{kWcA$ zr6<1uL)v|$3Hp6c-R0-D!106PhZ_UPTzGfU{0-<-38*#1t8ah=lc^ zRTFbADza}>3Z*aB-}`;?VU~Uz!1r>&_p6MQ1df7o?+)5980m^RbDl^&F1FZo5Km z2zGzmbUISjTQyy?As>US>>T9HHs#e`caPrKyF4})(yD6@+(5DKT0|Cg=@;Gq2BAX0 zBW`6yy(=xvm_DAoc1>h;wzp@3ii!$q;@KW=+9)u%wU8c+dX_Z0=aX1;K^GI6Mnr&c zRuxlqfmH=2U%tn!lj(2ONJyY9T_XrQU1p=+2lyH0K2uJFVS4coKMVxj%_*C`@euS~qdZg=o8PbwJvnFk)#CT4vHAT7iInRd4 z(6|l%JNAY)9GZd4g`8gULDu_f=jKg7&~l^B`P>X|zq9@2qnYz}idC+MWReF6>c44p zW$dm^8QWDtYAxD+QRj%ZH)Cw=~EH_lN6W#FGY2jv~ z9MLO!J#E@))zO`)A$D}VLBU1hJkh}&4hXv}7+JLkU8{43uK zZwxROiO>xvlDNLFCS}vhV(Z=UKl2VDggRyIMN#<4 zj9zc-y1rBh)H0tF+u^&Ybvg@V`ubxl4bmEVfGj`rZWLY=5Rtn=73Ag27iIhx6_WLb zVCSwkF0-}<5QmO@<%75+5g_b#Xv~#G~pOl-nhuPNpKNZ~w>mf+9@D68k zSr6Cg{RK%5uQSZyUl8W(y;u{gp>yLe>xvSLoLErhJm=!SiQ!_&E{%`J&eNnr$hX*G1nD+(@} zHLZ!U>KDzvy>)iHxnZP&k4pZU7GZW)r^fkOwc+Ixa13`Wmi*-j#sn(^}cS8e6yrrwN_;wZFghqcH8tP$V7iV>*kMM2oc0j5m`Hey1 zS*W~&cIqjZ?xMNgvpaxDRe92Q5B3L1YiqX~A0Z`UQDJqZDW%bnF;vd-j#^ujbX`V^ zPcKd?K|gJ$>@K>eT36525g_vbxq?M7DOfmSxPmp(CWXhhW;oJca>B5I-H&{eyu%$% zhwX5=NS*cr6?-5OzoC)?6=^vQ`7mf_!?m%$5sSz3rUIkc42aXITv z5%E5blma9nB`D(AoY4c60+_(G)-gBy>`5l-y(?SGiHMoqrTMoT7)HV}8Pjhoh-!21 zo>gJ-xMO~LV%0r#L^ao%vH0oWi=%_&+rtvil?@5W7+x;Fxwyj_h~CwANxm2FSP>mTDKnO2wYk9o>zIcD7kUG^wadsKUC-8yrY zQu@k0j6=J+4=U!?_RHV5AR6Z&WBE?u9lw*Q5YTqeAGTUsan%}=>0iF3nBp`sH^e)U zd+P^F@3-1hUXd~Z93V&NH!U<{w1xWo*Hk@Ad{TUs@$a7U(d}P@quP>zrZ%YR_n*Wr zn7xkiE8W0}5mLB=Wbc6cakkzK%&7^>uiUTUH3D7!5i{p74)Ohg<;a|UAtS|cyA@4} zm(U`zsD>LxHc@0}OZNGT{?+vL>2NN4oKFNV-`BG{dM*yKbR?TMTVz{VnE(ZO-}?h0 zpMIZ8Sb1`bJ>O^7^^0m)P5=Jy=3{{ zf&%2aTB6Kd9Y*$r*~}sAz~Z6uNe#!-`pz-$D8qm-fN9G~Zz%p2yT}+mX(T*tM$=_N{&?MFIeWf(j_JoEOW~{GU)H=Nqiql z7PA|hKE9Qk;Z)NZbCaPi$>vT5@=mz^s|9$OLzCfZl~Jp8mLaVR5zYQVqA7{Zn8Dlj zz0R4Z?WeO*Ep!~NNq?F}uD0@?C&a0*6NTRj&gk0V+pjfr2t92wRV0?_>sZL6dGE(M zqN|x)@U?eQzYV`LTcjqd-=7Z5-`{W`tgwJr5Vn^;vmfx@eBJbQ(%%O1C(CpAf#g{p zHsn-?GR3;UEhWL|5i^Ih*kF>Nv(@&8*c6=q%Gl8~bsV~51; zVcWneS9NKqA>8ZKoo(I{Nj#?&V-41d5pG&kX0~5{QT{g*T>y!)XSyP~zP=z5ECoGP z+)@s1BUX8CSvw&a-P3J$TDEj>arDd%_teS5$#3=O_uJJ^YH{wX3A26<#|od8WhF%s zauorjgI4(7mR!Gw&Ptq_nE=vU@ZiLqSf9SEMdEl*& zniTOfm!QDMw|k`yV+gSe%E8IB@#-zdL%Z8w5~>o}pn5#5p)wscK5bHl3AZHw(i z?<*Ion&WNX$r^h7#9fCL`;M`M0#artN08$S55@4eu?&1t-Qt4!gxUGhQ#7=v>lcu) z5L@{M2k(Yv!_x~fcXsy5#xMDvhB<|U6<$Vz-&iDjYhJx;?}Elj>PPfU$x)!ceLoa8 zp%+Os@)YURw4!RFKmTlskx#;6SGdVad?~gnMny!Npf69vyjZ89EMsg&e9)x8gNqDM(EAi(DXJF zQegXOA&N-N_^v;h5xBL&MWA#?te2v3T@YT-d&j=(w#C@2g!9|Jt5VU?XLt=d4nvT*m0s?j|I1e4-33HQNcltGbZ)guzXokDOUWC7$hP zs5tJ=;I3+pIU|U}@OasN{)cX4fLVRt$+1vseLPyj&!uXcebgc=qz92Va>Ddbq_J~( zB1;SWQx3`AV|9}iIpmHXV%|&!ALA1&mUSYJhjMZO*f_FJwQd?(^|5rSKG=BnkP1*d z_sdNEpGe0WGxIWGs(<5&y59+iA0+K@mbl99S(GknP%wZh}}%L`jg{EM1H{ng&B$otV^Yl_+{Q zB?;qjNhGAYWxg=8&6T(Kfnt7)6m3-CW+hszFU8rAq4Mf5cYjHaV;pbzR>mT=u~I z`ZkR)!jf-|TZZ44GCHeyd;NKk9B-P{KAC~elR4?_)76UCr~23Y9A4kMO^_iw@{e)8 zs`ep1+n0Xiq=9;(mo&>_UMGg_1O3<3^tO_X;A-$OpIfejMxW>W%S?vrjm*sIQ5-|E z%Nn<9b5-S)-!H#APFF2{1u|Wf-ebGHL>Q27yyE>os@^%glID3Ij%{shZ)}?zCmU_7 zO*Xb|pV-)7W81cEY;0R6?|DA@{@(d>=9;eQxvHzG>%O~+dh6ooY3JqrvGW~q<6nAt ztl|L=AZkWgTG+xx#jfov!5^;`yGI@f z>yu6Ha%AMSJdvqujS=}Zz2)X+=F0(AS79A>%@3Wg=O&bV<*1^Bhu2*u?oQU$v~&J! zU5q8>Kc>h~xWqdZ*NQc&4@i`JMFSkr5Q)2k zI%@7Z$8E{-l#or2(#3qoIXCKtMOwmT8&)z_{UI_h;Gsum zf{$2zvfR+o9{Fbh2{$|(?!eRCP3FmI| zP`%=&1&%-fRCfXcWr6S70z*`RS*Jn&A^*g$^TC3DG@-9Vmbgr4bug0gaNa5|?8(UR z2O0+7V*(K&k2D3{Ld79bMxe=yMmCM63mw*|m=asq-R;^k~tDv>PhwbF19F zfW|HpNahc!&$iEmy_nCYN8To%UTX4|^HfxO4`U^*wS{GkWx(5(>`4_H7H`14GJF&n z_SvK0IdciMoioEw4dD>d$|&qQK|H238>p5lxKxb9aZjd)^NQ@I&SH$*_`&533?=*w zCss8qK=Wc@3>9d~qdRsZp*e8O@8K-qo~79FV|mn`{-c#*I^286v!OWZ+h3~r7AiOD zy264|eF0m$V$B1K@t>v!(*>)&-9Qpo_82lXbTyMfrbM2Iw2YpBmV;b_k4yp;o^rOsHOu<0MKVb`7=3CoN|h^tr) zURq)BBQOSc$W+R>G(ps1XR#NHSeyl$a9tBb(l7|5oWVzN{0##KpqYT;$&^cmm%$w> z1X6jo)Za9mnnZL5=TT%(cRODSnn%FX@dWio)HGXTW-gx(r*Ooqhxzq8fubw2TBI+s zNGC+W3k$EPE&HCAIXTgIEYiisp?gF@O^;**BIRZeyNmKy{KRTN z!8ma0+I1mO?jG{FmEJFV^kb0$R9hC5hvZOLy%6mf*dc0 z?zbTzGp+Lzm^iNS2oc8MI!X23CNoF=PvqiHI9Qb^VY68b(w|(A`AGH)Pfkv{DB@ve z7&CJz4c*M98$lb`&p6Y*Km?_CimdHz?u78Wn!8KhA3cY5sLBRSx%nmtMGLh^kz9XQ zn!~@dh|>Gg@cx%jRv-LL%6z z!}6v@k81W7HCk_J_I1%m^o(FRhUt&RaR|%tX{+M$(nkb+MFq__O@@%qKMtTd_ggYv zm^|Qj;p~2h-`E@<9A2EXSd>t6fjt!oaGS{>$N(jO`gwHU*^tB$H^}yt*Dd8EEp_QV z`%BpU0gXukOBVA_7AQkbQN0KKCJlm`V2L@eW3*6Ic`7Z(8aF%aIFZjRp+YW&&%89$ z+80A`Dlfopgpx!BbZ9VcS<@ZxUFeUBbp^o5H^%P>ZhcEEEXzu@2F_FjnnI$+0xu z&Az_K|Ef;*Eh!9c8ITAJ44f(xa&6ZeL35mH%R*7`r5k6XPK@|>hPus~{9EZSY=od* z|5*!(l!Ge;5f8GlOO&;F&3|0Oe>_CsC{R4}lgSk}3ZvMpB+tKWwenbaVag5_^0RaKSG``j; zE^T#Qj>h>EuL%DW6kBk{7n%RpnQvV;#bRQk@0raOVlkLfO0sbu=>?W%dmIG0 zED2k@toSZ`+;@D0Zlja3O~M;3*>m9>x`H|Q(*-A8WH$x)x2SRpWrg6OhkQFrsGsm6 zgD&T!UXPk&#i&MxVqn=`3tpCZQg%cKgJC5V^?SYYGV=63^Cob|_jku?qwvyY%mv4W z(2Xe2(E$>ak7N|AxCINzju|#EZEHPw7yNW?py=M6R2HYz>fjjVTeD5Ugv)NKQF{Mq z1VIWVeto6M*Q#xQouXrV=J6uz>+ zV$-o{xy+(zli|f1HhGER){}sC`<8bcW#wcd>a49i(gzxwBV$h{BB7LddpN)nwQX7I zVVyT^6T%tbqr|d}T0>TKMU!tET1#VxA>C495jKJRMP!?Q$h5 zLE&;23XV0O_dyIyBznP5q}7{gO1?mw_ouk#RRs=f?}YT1mkCc#{z+N7O`l-SPatoz zfndn{`>%=4I|u!BW!XEGt-0nFUg6xYzO}&=3I=P-0t3PC-j^R^q0Qc`PYRPX!os=l z@8fAM7h=SI2Ugz*DXUz7Grgxh&y}yubHiZrsA0_%d zpFP|y{H}D6nxQe`0h~u#JtQgYE!#eoA#|S>`jSo??UIUyIRLr zh`Uo?tUuN~ZSlVQiwNV<$NJr9?juwt5smlK>B_k87!3dK#k!Z6;TD@m)7v{5w!Joz zn`Y!j_qIuZ|5DGC8}U)fSL!&wRYDx#B}HV`(Tf0mTTC*l0;TXLjK1J8w6j2C7#*Ep zs2pSiz0i*|C14>*z4uY3??+yP$&>3|b@9uZ&gg0P=5(XlT{_R66!FWnl;vU$LDUpA zh#b*BRb*8bWz(H0>kFLhP(K}9RIDh&&b=N{PgHu|4Sn;t3=-t9*gWel;^&7I_Dit3 zyK8-`H_>IVqs?V2`YAA4Wc=B6+r)#4-_G8}g!4WSdN|!=?yh9>RWZ5#(k^E0O8?+X z^OUieuTWxjM^Ld4?LetPmQa&h&BuJU&C(wIg5B=)-QDPPca#z!f|nQ!X;wU))rX^% z*XIPA01menmlHqIO;whqRgIb*ST}mlUYc|%un}>mJFKT8O94)4{_w}GTizHMziG@9 zD+pWxkz9zCupjT&jzK74V*ekL+Yx!C0=H^fBn#TI(5*qo?^bNQtG_4*q|ouKA&}C{ zO2;2moQafNSVI=kFdU1Rxf;k|u>lZ8aWeS@1rf2almiP7jsmfcD1?>+Xio4HVR~ZK z`?zBA2{Q6oA4ASWW-efZ9Z!!;=U|pp1|R0U$RhpmmK%J(7i(Ud-EO0}msIgMlg60| zWM=Zz-;ZY7J#58&%0n&oGKybvn;&=hc-y|ia(%&lo!DQ}sWSck&Z^M~l)LnNccPEw zPSQO$=m-}Bd!yg_;e(|ROZHh+9$uVdR$W#2O`Z00S6zcQdY`E!fbc9L)A8d{>De%I z;4kl8dWOdE<5TXA0YBC*4bwjG?Q*Z{&39zdgd8lKU?DXw$CrB4Xn(3RNXM=-LYo(- zM}7&L+u^JdF^!utzdyiuB(0Yb5vRtm7vfTjC;L153in6IFt9VDuB2Ai>B3s7SQ|dJ zf!rmNB)jDim^u8}im+U>{<5Q9n&f*Uo%8-X`mQaTQTs%Y60gKqsg>ZKuj}POVZ(7= z>G?VwA_u`$6O2y$goyIxA#97Ry&2t4aBMl|JCjEO4bDYRh9CPK4Bzu(qrvU4i_4K+ zadVXMtlj#$RYAU#=(o&?jn>rJ<@Ojr?kD_oRrBnM4G^-@7PDGFAXg_>Tk2qN&EFPX z&5bEd9s=mI$j0zs+mWKr@Z8=s>TBcm(_up+%hG&vn=QcTCj(xp!yOSft59JabMB|0 zT=_!O+%VCFva3O6qxO_aitq<+)VO47p$m&g$>xiY-{(=ecgJ`vl{w+6(ccOeFj0vN zEP)?j@uL3yLno*ZGs?R9J@TZ)0+GRsNbZ}os<=L3$VCQX*LYJze+@#H&j$A#cN_@| zEDW&Au%uKATj#5zo);w_X58Hgtd?y|HA7(4ykTl_P8g2WhVypuks^5SBlzYu1J~jT zT5c@OA5QToR6?tpPmD-R9W}9@II?(A@3O{odNp=i{Vbrb&v>t-z*Zt{krzKMhBPg?2(a zUIvIbTMw|vgV>AhH*G#@Ex1`8HMy^a4Z0_Eyl8IrfH*Z*`+lj!{Q}27 zm;~>czTz2 zhxUGX{#j;2Z}gJNUM&1~t$%x~JS6-?z;m5S%j-w6S8V7@VqN%V@8xH-xYxtcLX?g3I=4 z4>gv?;C=N&+K4EsJ7?$2Gg9M9loR==>dn@?g+D!8^CLxJJjxz`CuWEmJ@`{6hc54< z+O!w-t=~Q3?D8XtXgfu9zP$Y%wobOFN+@1dZBMJybXwAb09l@RELb)@EuIBN8q?_O z{a(4F0Nqi);B1s4=@;O5K7NdEl}#7%MXAj?_R~U>w;$Ku?3|lW_j75srw;Vllh4R) z9T)`CoaD(~>}%QES_K%rbgJOElNIv)nVFG6?Qu$jds)z*&z{4m!J@%yFzNhtu6T?fP4Q_3G+C zP=ipfsjG-Dd^URPYc)2S&Z+#nZ}mHN9F|@0teX1u{>7S$n1Xk%LsFw(N&);*ZcW;a zZ4d7sA;?gZuh4FXFi}ItqtvMX;1ofk6tEZpVP%f6;PJiw*(NC13sPklBKA-Lw*$A{?R=J)S|A zQ0bkUMsNTxN?H}*S>|TyPx9h+i-F@mi1@wAbyp2b^3%bCygtW0`28@mPGi{Zvz@q@ z4q!zyXrS9~>)iQgQ8d9~m8}t}D`+^^JAo$GJCdeqniPzMdTRHC`*TA4j)`ipDSgoI zoy-mBLg3o@_FlqU&btPeB9tzH54PUSu&LVrBBZR2GHPs!a16U#3oJ(lHRl=(Tpe|H zV=!8L{os)``To;B6KKKh%ZKYH*uN}ly6H}nDn+(2J?`o{>AL z$eTkem|VTqb(OW}wJYhrZKcECBslM7ISevX?~IsS@4mq6GwD_{Q=VZVP;-|nd%Ywf z+Xeo^@=L4wHagvVZjBZg$Gvlo>k|LKg4qbqSp#)-YyQ-`!71p|OMa?S96N#+-9K~)lu~4>Z0WUkQbx5Gf8nr+rP%YnFzIfV*>9{}Qbqpb!Jx%&Kf+DS zXghWUFmaa}xkm18q~p0h@_o%_d~L(-hxdV}L|n=jqs zbfxhOcTDnlFVa8urEGnzVoZgrk`DID71;6DlNi{5L%VN>+BqP!Jm{;wc-@9y%CIuf zeAaDZAkLG%S8eS0158!M@8|Rc)shD&ap|HOI&EYrbu@H#a>(=gq(r`=qaevBQHV_W zwa&`Uxj2Qape2jee@j`)$Ov6hQW7h9onH{JRC*v|Q3m@q+nhw^6I;{Y)i}?GdxE3mGRFQwurS9leWqb)6%fNsjQiy zhJc1S)gS5eG?O>B8qJz*6@YPUL=}RMTPJfpfd#eohyb-@g^_k{YcznNE`--JJgiMb1-Cr(Xas$sV(_N3XUf$Cd&kCeix z(wINqIm@lcUdLD|(|^3}UvM`)LyV(|JsxPrxm+s=+)6=qzEYyCv?Ma3kTQnYo0xFF zI6$Q~L?c4}mkTfu3OVR~GxdhnmOUARM))P>po1jUn%dA3FtP`g{>1H&zP|?tN zpIoRSpr%8GGIRZQSRSSkPZ)>x%Kbh2vx|7L@Em4|NpE^<)9U$teA7bP&FSj71hGkN zaaIdi26tc|`lZEfW57VzCnJ^FD~3PW@7jX z5o@`LGHLQ+b!leM!L#qle0p2|o3ML|CIW?QR5G2x1KBVf6*K!T#ABl{NikYt)+(8S zi%#Yu+GMbF&L6h|71yjV}U6N|Dhfb}ysjzk%G=S8Z`&2R#ECx7@=zVNUw)%!*UPNDq))IACXI*{T> ziGDB4NS_`7nyFPLqr?&6_wf@3_9V^GkAeZbtJ;n$_LprmfJG%c%iA9;@uK!6*J@h~ z9GEFHned3VJ5#L`5%Hj0VR5@C{>Y-{A$!}elG3jhf_C0_cveEpJ*>3N+0kiIJ~!aj zU~f2g03QXtJ~>Q0ehvh;RdCDNgiQ2a$-BSP38R%tpGeD2pGK>xxw|z(^L~e@?$?Uj z1G$q|XXPQew?B;TMA0V*o$-FTvWJdcJzHl&>eXRz+j9wfy3^kbQEl!I3)ei~3_p8} zvUj`>3O|?ghbP51-}VSXp1^O?$X(qa)i4;vJg8C^LHqyVPLvM0+bL#(i9QPnX?kZ( z-WcK99qxHL)PL50f1ov>as2fSItutfAfe(BTSoLycbE#ifJ6PSO^E`lVw? z+V4epX!45b6MoIkp!t3gb^@4-P?*;m+E*jb*VEod@-^(e8Nr*&PAi0IqY1n6x$VOvSOm|9o7t9{BO$ZGx zPtz4a)L54%V>qOLI*B=Bcc`?bT}n~M>=!Yi>-1`T9uEjNRxVN-on5cl)2_w)?UCgi zu=>7IdFH*{B*d4o95cVps{K#m`tp;_#R!yjCaaSFPnsA4)UH8IM`xYtpdnR<_q(c? zt}(f&s5!U8&*t?IB(kH5ar9P+e`AjSd1EtFM*e@P$$#!0b4eJB{Xdy!2+?LT49x$H z{|~0qhFnV@_AhYfU$^g-&t2Q&9EeBJ9Qnfj-_b--LC0LBa7FD!?NunL+bl_<5vrxrZ9-FdI=fUzIxNX)1vue!3iS-lZ22!A9XU{-QI$& zw0qG=#}XP{ZFMdzE;f2(F^mU?h9)E@OM?0#!Nbd5jPZS9VDjax^%K$yM^Y3rf2akm z=PoE)6;>FMm~rxzdWg$3$m~*LL_{Daw$4jMsr=u}{$@GukDxc%tPcf8Bp$CbVgi-FAmoF7zG<(a4=xl_evkJe)w+wydaEi74lc6>yuLOof3d7&?4n^T2fweQ7}a_SFCX6GNJ zh2QTkb_cC1oH>(C1~4$bN$A2rh8@h&(EDE=4}C=rqZK;sQ(z6VM(C`(a4T;NymNa&+ii) z1dPT00nZq-@l&&3;Pr;}K+x_kM)~8BYgu6UL7WBFQsP2itaACp{euc`>K+$b)5J+t z3<66RnUj#WCZ2fNMo}X)}_{4dxcx2`DdX;{pU%x`jfAlVLYcSX!xm9zgbh~gqIw>3j;5! z4A;x-Ry1@&^iU~f9vc+dz)E70tn~-mvi~f!L4G7z?@+2~AWqPO+5|KET)RDGGmO5p)Gg1DwD9U+f~dUy=L^gjU0;GD@&{z> z?Pi_&xuB|eryO`e^2qbnzCK^V1TA}lQX@6W-Anf;jL3|?Rg00k$yr_CpT~>K%H8&Z zaylMWxuE$VYG^e4OvTFM;6 zEEfkYJ9lEbo;AT_Wx|?UU(-f}QHJ-GQmt$E86=0ePXXM@K2ivD068)AW^~c7j*rLn ziFBuf^lT*}1$hf%{LEWuDNNc}2rd%*p$4S%x=Jq#kv{U17H4MH;&+dSN z7YGp_N$~P*;n26W@{uTxz@?F#X(7W4^hwR8-iS>v^3uO@@-1{aA40j8u3%CS^0xT& zuJyO#u!m>G2}ahHN@oKD5vXmueFt-7ECCziMap_zX`55{2nc5*F>t#w1Zz4pEOLBpmwCpMfgSQgxPY*KBnEDh7*Jw=@6yA({N>jrv#7xVF zl=Y(ha^y!c;JM!2R*YdF4A~VP@~t$AwZ3r#GB0Q(YGp730~)Xy zQwA&I1Ag|zhczs?45xtTTuHie|j#4S7xj7vggZo3R8t|efGNXluX?o zOg;?1zY=f6wrQA^Ha%Vt&!}!)+~Lt)9rzjOi+@Hy9GKMcd?jlJ35h3jyI0d(PF;MUJwN8~RnhfoRc2{L)QZ|BQ z3sebUx#~b#xDDWPwsf;c@(HCd&zG5gyi(+0?+!K*OpRn}2&LSZj7-3#QYE?(Cl`+V z=<-t#1vR6pU}dZn8gBfj@;6ex9n-@iW2mIHf)#9{#vR-kupOUc?ES$L`yhtKvRq?+ zF(QA*IA(ny`?T;Uc`o5K@^+2px{6Dujn5BCI>qCHY#v33Mj|{_E#|o(uxW51&l_x@ z+p1d6dHYX{!;zo=WKi_*Bm=_Y&RE9 zlt!0ONe6xh-t3mn)2Ff1@J*$Zqd5v$6iEB|V`V;H{VeHBTvjp=Q(jAchgv{da_>d{ zhS0@0lBK{k(RwZEZoD@ma@b{B$+i??33hTVHf0XqyAi`u|2v zQ{ZYv@;iwDVQO-62>?A|Luqsa*M%j2M`0 zu~olD$Zoo}OB4&!tV3f6M@!=Sag(wY6dg$um^hK^?3I^~ZS<}*v=MTNW7OYPuMZFq z1i>8cuZW^+1@UsEP6gwU(pXaYZFA)lkT_D5zaNRB#8NcKPG|o?F3C8|obD^gZ=Ngu zqo4!?{e{S~vg2=%R9^J6;3gK7q6wj<2m{;?;)2qa8^;-;rypI>u`3^Mw~IItD3yCh zgB}eL|G&rvB~8$aE2F5<(}hAnAPdwPvcPTE1r%MS&2-vgftf~QSU56>hdmB?jED^V zmN8WjXM5Gyo#`O{t~ZRkk;=-OsnyXQ-)X>Te04KNj>pGFoLE%=YtG8^>sXXWj{ zZ`F#0y!>1JcV|6mgwdbQ+l=0I-SL8Q+osd1kQnrBSrZ4`@??{^V&1e#Yxt|cSsJaX zwm{LH&^}|)SvBfub4y8{bE}NSn1&q)wUbFWG&4#9AO#{{NrWe;^XRVsciax*%zNxRJA0 z7MGf9F4Vq#$V^nGUGYXg(D4VjeIlAHzzcs%?zxmLh(`1Lzc0ODsX>)IN!3l^M&K%_g?{r3$1ybGJMUCVFsxGXY!ZPe&F{MlAj z8GZhwL<+F0GYe}sp4XOqZS?5emwZ2wuOyQe!P4L&#!WXmtZ*^Tz4SzuDHEu5rz>_k zBT%>k%6=OS;KxgNM&rpY&vK^k%W|`LNx;bVf4fi;AkdFxI5<@1t#alifH_{y@}uuxPDt0qR1J~G_*#?CU`gX zecK){PRzuL#6zyOq~t-vx+wf-g{v)=A8>n4uNSsu;CG)Sog$h>OoF2IR&mF{#d6qs zmphFe@txuMz8YhuOln3TF!nEN;iZm(yck6lqdFAQWz6?m>Bqx&TPwvhq zJ!@QE^t6UM4xE%}7*4r_`BJj`0Eet;ejWHGG8CR3*s8{MC2tf}AdHmJoh&5`7*cU1 zw&{f1`gtJp%I%($?XOzwT!B;??+ zyKS$DT^ijylI{(0(!>6jd-Ik5huU=AUhLanAp8bhR+i6+tZhfknsqwV2wzIlHzw2*6yMq)*rkx5@_!mUIVa+a z?vs3oYw}-FAsb1bug&PWd(xq8b43|sRu8B}T?!_Ju>BNvkg=2wx_tBDu=-0CiZ3@I&@ zDFpr+F#EU-*~SkX2{#n$OH7wJT?Q9{$4V}Xx?ijSDURi5r0R(zJ|7GnDGV6C%2PcJ4Wu7ezo0YHPl>1tBX& zCajaUFDl#b;BCtRz!O^CcFfr*ZVH7bO)0E|KQXreP!;;auryU4-@-?AfvYb6q9#pg z%-6P~+1nhkE^CT_)a>hm%f>vHUqsOV*%nHwiU~l%p!At?nXusUd2bAX+P)a)(-UpU8E2CN2xE z?F5J?>2J^18 z!@Xj__p`1)Ww6O%nAa>i$h3caRFHi_q_WA+j0q(Z!Qa8eWT8v zzOtAaL=qAP3B02tkzpTm(YRZJWIzOjOQQn<5pm+vcnk=4ihyZ4D?3PNPXA0c3W<5F z>BC|~s|clsG|VJB10IyRtr`|^V59C>G4RM8!e(}SKCuh12n-z}gEm8R9CU{WOyU~j z30%JFGGWw6Eh}=Z7@#iwCFctkR!`w_pPZLkUGSL8tgM#y%^pIzlW<+=i?bQgw3F~D z_M4Avau;M=q5ZzE5Yc^^XJPcHjQcECCqUyKq)$G+Nr}5XSpiv`#G@4rDns#Hk3?3p zXr)pRN9y+w!2!&s*YQ3&%K#34neukyEv zSZSF7M#F%QWDxdp-&~!Cc)9|%L^jZUk7d+9jIlujNBie>O8Qp~G{*Z}o74B<%clbU zXNE{0n4z6q6IsDXED{8l={>>kK}?m>#mu4Q-K4)ijS8)ENgC&1_VLvr zfnz1osUH_s$ANrY{=eXg%5(bS1aNrAj-<_Q3QDR(_Ib~yRQ{{Qf`Xu}kS^T6ZPK9h z$8wTl8^OyWO*k$_RNaml%J#d{ISNtAXZVNkcUhl(`aV0{P>r@&6XDjd{h%@3A{Qtz6Zke`deLuWk5Ai2$5%OdKb;u)s5=OzjELF^o|fH# zKHR!@P(uS+_j9Q?Os~8dnqhq;J3yI1flGR%*8ZL*l!JP&>y#zY4ZeHPpxJNZy*@Ka zctQj(+y9IXVH{syL~a#g!M`o7{etw(gV9ionLq5mR_R_VHYpX60*(ppU!l*hrc)H> zLl-6FZ6=-Zu@6ojhWL9D)(q_+a(Ig$mKwE0#xHdW)(oY?W+>ExG^wj5?BT50zSjd(^3^zjPLGkxEd2?^M!+b$9f`Lx4b2oI3U&<(ReUPJH*-kzydm2^^El&Utry%(7a0pUg|ZVA~>KKw@ek<*DbTcIJkb>;AiUOUsnY z9mPK+p>n&Ziu0x2=Ze;f3z*x<4*=wMeewV^vIU(Ig9$}2F2x5((M3^Iltl(02inz7 zRjew1cxkT#%a$~(>>4W{x^%Ds^u*ZMc1)7!$!`dvZ~?(tURM)W00mM*CL}o7t?6MC zlF>`I!?%wqZ#S;=Y2QPBM1A)#fM9>iedOKqs7$}}?uPLBHy!WV!eD&F@TJ<;IZ8VVq1FguRmV3+Yv#nU z3twY@_0Cx7OW%wz;c}|AZ+ewYi-Ek=Ofxc3{~nbvbd7UZqTwga0i{~n&W4_zhA$ff zeKGw~E|xiW?B&JZ(dN`T5Onkkt$922levF-WB~cEA~iEJ0smyk;y1mmr8P^kfqY(S ziGQxb`f~n9^Jm0ri#G&~r2Fa1KHXcl3xSiC0C@gm8jH+lU1Sw-Sf*S|{_oN~FoZ%d zBz_#7BzgmPN>vp2P1pCtlNH3oNMLqcn8oIhXlpBu|9mgRX0rIdM(5-ItQpq=UUM?Q zAz8a<&->4Aams%T&IenLQ ztIyuhhT(;c=KmG3?Rar>_vymdV9otkuI8Gi73}dWC@I#q&-8JnJG_TEeJ{zB)77IYAg-yq%CqQD=&Kn zo-(V@0ShFI+{S3N0YAzAnT_@B?|ohqN}s+A_qwJM51cx+!q%(S1k4|aAV65(!_{d6QLhBh)XimCx9pw2wQeAfW%ltvk;dkhzqiWGVL$!Kyw<2ySm_z_RVo8)Du!#-=#ZIiMi=|jk za{Gr)!--(O2TNbpanw`+aB~9~%|ArXuR8NBA7Awh>Y3-ddZ0qXdew?qe70cUuS&nb zxzF?N4$x(-(g=kG$1kMTPnDQl@*}<+g@N}?K{>u*JMIh!QS$d7XsW5IM(UyUPRUu; zR)O>{f{j|Djrwlztkm<;FPPhUe#)Zwx=q{-BB9~lQ|m*xWPztCQ;||~xFA+K{==wW znxvN#ac7?In!2Zj+})Uv(uaMr*|W-xXPJ5XyCDS2#z}OJFMdHL6IJV9TBerc5^6aj zI>?siF>o(^i+@SX`A6ch@C>K|C-ZhG(QI!k9fj6vz|d@bU_3wCSc>s*!qYo(EoWN( zp2~26Oc=%r%uzQyW^pfthq4;o>a4NTsa7KmYiYzsp~G>dNe*dJ-soJLu? z^(_KKUTxw&!30_;a$3QZ+liQbX!V!Qz|)SZtE(`iKHzgotX@4#42pq1oUM9X6CO-m zw!0*MpEZrtDnhcqgoGW6O|S318TEPnKC#hxKE6UAD2;|kU!4?8+c@}o!denhN0nOh z-VzqBW%CZ(`S%-)k1IMqOzfYI1wP8m`R^p>k$@6l08#OOxd1Ik=z;6x*=~fBy)9LG z5nt;g>KIeeTHeUcn|#SKT&cFKn8{yLYbC6@@*JFz2eKTwFXJ&;vy!#G+R?n9lhi<@ z#H!5RJS&g@$mc2+ba|+uwtb+1T*TBx+^;|RA)1BYoxFPMw?ndUaes**vFvR8x-MYQ zYQz264MwAn($DaGL8!$7hLeSI)d?%?gFZAJ3eNgGIA7xo*5L|+yT0@0^i~KA6YX80GK&gKkwgb4DW3>b_Q(vv0OQ%&dQ2n*>qm~Yb0@@%?Ui@Wz4qDeHzusI6Am}uC4kZg$_$qr zyE`98+Qs*WloJRD6WIE|PIbewz4hf5_ceUKwhJ5nus@>2U4Nz~4S1II&b^Gwg%OnM z{e4iw0rpX5q=(zRVhADNPQrjB0?@k_!@A@Jm+}lS#qG*nj(&D)=m!35MjROn zWbmhKDWZ9ALn5DqqL%;CB34s|Q*;L7NzpLLAxj~{H4~KlA>s*rY^s%qk#H#g#M8<>{Ym6)E zR4bgxhOl{Ul)w%yu+@48gBL3JW~pnv58SD&*N+4Iz`Lx2XJ7L~dn>9f*^q~7K%b9z zbg+(12PTYfW9z+k3$qU3N+UCvAocI*4x}{d1Y)FY%OdqoifV_szW?kJ(oLBkrthni zvCfjQok!$xq-ykrw?YpU(W6tN_&*w(zt7NeVZCw-*|HGmloLFik5&~#&%EF0SgtS+ zS=uwj5^QDUh4%BE)7L|MOxVZ+iVK!>H|z)MKG)M?D^WMLrQDjjpE%K^jV4ykGYJyV zspE1rlN4vuDSbrqQ3qUr7bVA!+E;c|@Q)Xhc{~$-+6*Bk`5d)u!7=NTZ32$|Xe2mI z-9r@ozMwC*K6hH;r&u+nu<86?`IHA-*&E2SUB7S$Iohea>)P?bNa2drH$WnP>Og_X zdDf4fTOj7@rEuy7q7^Owo{SL52PVYuXTbZN=b)05jz#-mUDLf$u;k0HkLQYQ+HYF~ ziqn1ufN4bcu*A2uMCWy&^b+#eQ9ZmLC6_fv&HxIqxK|M2Nz!d^#ha>EI9I078sgHa zs?R8p^)GYFtFO#+bvl$Sf$VdE%Z&@U9NhM0@8{Pqy>83rdb#Cr%WgS66|aJM-H&AU zS5FZsVLfXRoS)7R%?D`i*C;%%wi}RLLq4;*kSuSMMwPm;MSF>g#RWtF^6VX`X@3#Y znNvsKZW1S9;J#PF4lIor;G5PttR@5{w2|Cb%~*VY6%r3ODv?lBeIVT3kbp3I&8iST6lNp6kmWtF@_b~6nqwczs%HWUvdqh!b4DcVoVYSdtN&vx=ovm2qT zSzf`KVu)glr86S}*1^ejn$Weo)3e=}NS^@fH+~(F$|b=>pKpRb!wwDC!`y+8C6!?;$FC62eAwX+({ z_fE2cRI7S3_O30;ff5+6)q>Cg=}_n%Zlg<}#CipDQ*D%Q$XSc(RNa&QjK7n5IgGH< zQ}i0h;(AhiV_*f8G`&M^adi4S{^2oyV5sPaV*bn}Cbx7#nlx2R@z1{wz~1B8{^9F3 z&m7T+alwVm!(_xb&^O7XR*!ti9Hhb;b778|3|)9z51^ z$6An;;3wZsTk~H7io9ZQoqiT_0*tzyK#AuYt2iOz*EMDIAo-r_p3zeKD>0s5grRq)|Jms;fTrddSGkXT*Uwi&O&cmHj44V?3OAOYgVMp4e9H#16dq`y zS5N}oTV8&6@J#2(!ld_y*)83j(B^}C5;^S|CEbm$FosaV@23~gdO`L%p2Af-CafDq zJwbXMB&~Z=e1{9%H}^gpz&8bDdm!ueJ9%XKJ!tM`1ZR3kS|~t^IH$)Ztt!qb3u(Tmv}i^JdrobT|;= zRsAcQ%-2ioc9lTjl=3^@axd=D#s@jaHja^y=|cPArZ<>*Upp|xT7wTkSfHU0`3JZG z|4i~N3pmQF(NX(RmZRazX45;!S$V;Jy&d&@B~pnmjAgi)gCZqDZ1=uF`R1h=W9$Cu zX91*a`r54z#M@(Dl?uoViCi?aHbNFlb!q0;e$&4;;VdmL*f3Qg`RJO*aRv#lo5E*a z2O3w5#a-PY9TVMYuzNRl52S>4&R;$#*a+A28knA;?HN!NY2I~xM7kI@D*EkP+vxlQ zqA_znG=2Yoa}P%BlrW%>-EBfgVZV94aprcUd&N?OJPB7~$~a$f*EQYzikKZf2h(_? zRbZ8JK1c(<-WaXCUkZAjnZscZ$N;?6V^8G!Y6~=lR~WMmlQ?``H%kL`DTh0tET>)J z-nVsUfC7dC%e+~H3;y7WZ@zqF_tbZ6E5hz@bEp`8c^9ch52l7!H8~SL&S23Qz>tlg zqx{2f_1g2i#-yPn8&#ub(l>XBgR0o?7p=Xd5p;d1q4=C_8KEmYmxI0p#qA8p zvdR~WE&Llogi~wANEeIZSJl+&{z!&jP|DDca%0$Q$5GbjbyoN2IRwKaxzr*>#0K zpt5auJ0BPDVlXbP4YltxpV#nR`| z#W5|>ZU=WBH^tc`gz@#$HcC%!csRMEjES^#1rbq-TfzVp=|<|-f?JtPBm7*YVbUY( zGrEC<7f!BPla-&}z%-i87O?@`e<)!hP@~6XD%NGZc zH*f$^9xzkZrqlaJW@B-e%KG93-0~>$q4Bh8NbS6>V#WSxws);NuGwJf#Olk8s3=q_ zpGwzSXS8%<38}oo6D-=(wug9b2J|4I_NZ*5U5^@ml0;}SATF+;rn3eX?sg?@lHojb zN3I(}C3iaBRdBI!#f)dF+c;Jjmx$Qj$8J@r$F@1kK$&d3a-pjk;q?@z*{MMav%skG z!9la+q-!ecyksc8ew`wt5ag)lxGhMp>-kL$f0BGn z0`*8Nx|CZe^c%C=-15OY--IbEWj|=7?nwT2wHe)~XKSK7{O*iV(_JpQXHVSX8nos9 z`CP^ z8Ml=&`qX{(vyEuUtCSZ3v#M?uV@>eXD|saUYH9kd??)Sa-SNiK%6V005mguhw&ncdBj*>7z z`yFeW|K726i%bR=Y6ZuxHN~IV^LzTTal&22x~imnhAJs}<55`xvcj*xOi*?wy=J9} zp$jj9er9>*`Kxa+c4J`xq&LJ_@wMBn~5~XYU=3@TukL3Rmt}SqGN#Dj$fGj=T*wjINyU7 zoZepr=mc=J%C|c0p_*2{L$b%W$FS!+wvHYM=-C;#M^h}~0HKI1ejl>;xkf!-ANP0L z9muw;Tr8huO;8$g?eP* z&LDzUt8L*_@UrlN;u3c!4974%GOapGC0|xVthYok4gh6QzeVVgV*Fax`KE>r~+*MDdu=s}o?F z3HueP2yvc|EGs?}dK8m`61?psH4w<$#-W?H3Jj zSGe{IZ9Y83IpSVTBevSzrIPc` z86-MS-s1c>2DsZFvl+87xp1!lt2MOyr3+&#kE`&HpqR(9Lp4_ZXlkE^3(Gv%#DY;S z|1(s?`16n6YMXt8?Ps$Tsbw7mtRBX&cBRFwhf15hs>T9MoD^}eK-}s2$hy-OVAlmq zY@%Xlj99FNtZO015~yCA!!Gvkbj_er9dTqb6o)fdC zRIg2r+!sFX!EzM7H(Iaz zoXo>o9+kHV0%qedHKq?5m${%HHxmcZ3D%9gxW98C8TZ;;DbepSR`HG&wIyBJsVMHM zPq<~PNg9&~m;Sr9$4KDuAywYBnY;>wKfR4f*5CW)U~v=(USp7QB^!G(`tI8m7pJce zdaUWW{t9}_o*@r7Y@6FKA2Q`TK*2Mj%P7n_Q?lQQ`GqPlclm8vUa;?(seqeCN)iYo zs=pxeoRRsfFo}0x4~yGNdv~N}&D4(_uPW;!g;=oTgwq-ut@n6{)LC3SbeQd!Ilugq zo>`C?it4Kdy(}qr;bROi)T&%CcW+{IdaKJ@Tmjz=reNkafcl0;ri5HB2^mI(L>)hs z^oDa<5vE@OUd?rGT85(u*k5N(e-VP?6Bt8sSS)b4y}aYEyW7X9=7`S&q6m*ibij0E z40UeLzy$ME>uOj*<BU_)U8d!mgt{1@P~lA9X})!!BeYs%i1*#{IDT-hnx$% z>FuRz{~S#^Sv)VNl@+wM*BmY4AQCjLhcnxbY{zcOLUyzrohhX2$Nez@kc6AWRz__K~ru_G{?eZ)Ko z3dk|hr8tY-nO>XaFSui*j30I^n~FDh|65CEB9$E#i0oDcGyU{~hAuos2l%96ho+hhW261zRAk3-Q{0f>Y zyW9yAra`Ugcx9P`KZm7uazMUOayFGBQ^2k_!FMHgMQEB2Tx<42Zj2Q5>FFnzpH;ffdjiI$L8|IT|vG;A46EK&uir9 z1P!p<2}VRADf1=DTYG%61^U5HlHl4fr@1KR&#Ab&F%rc!P2H zEamigl?@|H+dp6I7Dh|)cK8~jAbmvANvuP~jX~cNRx$|P<1FI&yZ3e<6qInco126p z8>T+6HxI(9^BOc>5trIUE)Rlwe;f8qzaP-5Y{wp6R7~?hl1zXr^4d1k*RF{$$=KQA zrdQR%4~uYJNa~1x*BX3}rT!RNut`cR((IpiL6VeRkJmMDVqME`+*2TIxfZ%?Z1@zN z+r#}eh2>rh&DQK*;qb^*9wj%aes)aV=^q$x2ggV7iDHaH?~5@5YN~S&?CaQpHgm2n0FdKzcjT2(|A4x zL)*`Ab(>r~>iUSOgO;F{yM29qZ6c)4C5^F~WS1aHQ|&*xgxNq2+gK4pU)Y_w0F}KmR(7h`ZOAmkf>V z6chflF+v8qIW{EtvB3xQ@UZ<%?XzF^4u9MMYYF@-j1n8Hn$P$~*Mu)ZW@ zU+&4W_?J$)x0Mdzv6Cs!1kZB)t?zt0<_+! z6B>f&PBmY;(!)EA9g)!da7|Q8nM@Ijh@ejuFN$On4#YT^xJq1T$C^^3P%xX0FncRt zi8vy9i)1iKSn=gV(^1XG9p<~Kj&ykQ40};(OxoBdTWg@~#Oq|cy`e2iLv;=g8Z?3N z3V9w@>q1rg*6NGJZ#SD>DTfu_wSgw5DQZ|BqQydTc%sbjs-DNLk*m!}NwfNo`k>Gu z=dIF*w)}t|4IG7A@ho+VH6S8Z{2xMZ!{OUBzc7|siuq}!)l6Sj;m6ev@p@aG`H&?i!uqW4bJM**Jb4npyf%naU zS>iSG_h+wzQ{&}Ke_-G8zMJYk`gXaII{uB5bF`Hq0QOTpSECu4Eh{Y-qr6zS4Cc=` zK-_rTzNAbbYOUNbW#{qcppleX$5)b={OS44Yq50*lCd?b1g{I`sT&^V4fH0<+>&9H z_rKb!$~-AQiGqq(_z0t653N)n zY+(FNnSVzNe_PbRc57=l8l>PW*S0GySJcMi`ol}?o8-o!Zou;1Tv}?l0 zgy8Wql!iK^!0Sj0=M<@vX3*9^O*|a3)>a!}A@hO(gpwR_e(gmlpp1svsxBGH{6OfJ*P)dk{ z`Wp|GXUa5nR&PayL+X3seAU#c_cy>sQ0CItih@zd9|?BSB{7RBigW^l*Y1+jLB%*l+C#FC#! zqAI>ig4--dt)Vs^XddE4d7l>;&YiZ{lhr}6NugkBEvm9~41*pyP!J^~H^}y3wu{KY z5rhye$9yR2$}z%vjn}fDJ7NJ?VeH}G34Py{z_7E2gtOQi1h}KbhO2{~kJ!z;5Mis= zJ05qR5<+Hmd?pl1lA_ytl}(xW_Dic&*w=s6WRU9Ds$=N>Ug$fJs0;OR?S(LqR9Yf4 zMpU|{@5Qj^&kGI1Y)G} z&Io|!)Atn6>_-3d5#rf>)VIFqmmp;S_^?W`x!-h8>T&5Z&zx;-EHXBH2@%4C53?{zXTXAQH(+0; zdr%z|s`^N&btiZ~Sg@AJX5y1&+Phcu&s(GQlB%va+LpaOTs?mmoLL+GtGKkQ*$_62 zgMjLlr3B$(z^2oLh04jHpZ|zMFKeMg?ZpW(#LnK;#^3HpMk5Li)_bT z!#cyBTAayfJehHYJe1-HF%X+3~fG6}XEbzpV$_noF{QUkM#b1`HG0sqyVAZjK zYp5Ee=J((7XCD;Tuu_yC1?a!{B`E_9&;NOPX>$KA3aI?~;XjjtHZ1zTAZ{D423-_N z#P@cj+=%~_Auq2m4h74VRs@D395SMz&CxC-GatJbvNspcW>(OW8_WG`rqq`&zd5aa z=gQPijqSOz4A`DyI$*ize)(2xk+S<| z#f6}nL{au7sgr`2)1)A{w@9<^ZRrsBI*}xEZYro8FmRxv2YK@sex3Q2%z^D#YUN*p zZ3tBBu_+~zWg!MwnXV&TxQp*&td`wNgetHXefo>)hZ-xoH^Swm$+I$K7JtzyAKD#v zCE!`Imi?GI?p;thJu<73($T3-I!QMFFE1qMxU9YEo%K=#U~=mmhMYXvjkN^ax!SKVc*ipcHH$y(G%i)WrVKMxO>o&`Wc znDmxlSLNsbQ2PN-9cC2^Xj<9d0eN(N?zF`!KfQm{8^Espg+T)N<9&O)sqw~WeF{9V zWtPd@oAGWludtQttQqb|n|-QdZdhI5%LG&VNNu*wba-mmM$?C^=W(H@1oCM}Z)Yt3 z&e+Bg{!Rx(zC*CV2Mv@9e_S~cESGeFMpzqX6f?6i#m$We2CCIH6#iqz*IR?%*CczW z3>o_XN32%r(W*=IThVtXxo`HknfvXH=79VN)O#|p;Z3tb?oem#qQVA}ziq?C9hEB7 zr&K->WjOO~V`ppc|H`VTTTCwVOML!c{22u0&#_f@O$2}$x69RO<{s`MS=tqfLM?$q zy~zn%v(a79FG!KG+??KeO5;r{07j0SFA6=*#=R-}k`lsb*E3IVLh#1@);+fWq`QLI zsOp*DEjv1Z;|uK;yQUpg=B3pcPB2L8Gn8|LRkh9oWk5S@TF#@ z5x4Ly1M^H1GdX`U9a%Noqg2t{vt!fn9W}Td1Djc^iNyC-Ak_5|h?8r2XSAqanZWj* z#yUUcOst2?X6z$j1!SEJ<^P^yH*}}t>bEodM-s*={|;LF3h3%m#;DPOfOj+fgFAw^ zm2F0;TGKvL(9+sqDQfcWYN?aM&YxvCqV*8gma~$n*wQe9v?aISg5K!dBZ5+hUP5mk zS9X)YvkeRSEyWn46WOIm9$dhtGl1+wv)}%y_cD0;WRbhEu^n6BxK`qKV#)G8(QWMr z=ry1skQYSs76~ZeFso`rNi{4pLj)NgIWDNOp3#)y_22HqJ%3xi?z92Wli6zI7JOlI zs2JWVKmU-l-e-1bR-+KGd9t9IjAhLIh@C|fLg9yZ9T0_;NKC^fu`Ez z!+SVfC0_@`YoaZ5_gQ@T+Qy#Y+eaXz0MpZ+4EgdW5hBBE>l0m9@G!bpOI9M2=q^bb z)HCBe8x%>P03z3%PLdUtq04fYYYYsK7XO~W8+w#m9nGIZ!zvY?m~BY|Ws8ze-uuU8*i{hA`1ORP*R;M}-sE_XE*#fB;ySnCYU z2}{D_Gx$Do!F|@)5$xlx!jU6o2SF;1#r9tXi0s8Qo1fO1;~y)*e(%xBwzyrV7|y%mkKf%(EwgGkcqy9Y5$FwBUM*J$%YB;A2{yW~=os_D!gpqJ=P9-Fv7H_J>Tg!XGlLM| z>z~O;k!HQE*>7-{HF8VPR0?zSmBVjhp9Uy1TQ3v;NT-r`` zckbGr%~zMf3?5*Jy#RGC7zB{HJK=He)i+Jm%*~AWK#aS}9DXlxceelBk zXFayz+SVvJzbAc&WT?Fq2UWMmq@4la@{Cc2m9Qgr@=c?oFyFGGJmYBDY$KcLYn6J~ zcf}vByY+%^=d|h?gPE2UM;J!Sv=@AZbroC$vJ4rshfGp3rBsmL=nRJT+h_C?umI{i zF?Evug*@0fM>n(xn$7?Yw7a0pp6*}j$<6m73S>lN3naYPOloCigBUlPt;u6T&8ZM# zt4!dTNW^K}(t_nD5(JqOoNkP(;FQV9pN@;*qD(U*oDSDBqmz)gOrNjMThsw=r3S;u zDq`(MveDlWKlb8E3kukfHN?zGjKOqMlqYU#{QhZqPp-ai%b8^?v$;H5*rH_TmuJoO zza@|_bMe&yPcG5gFNKT z)FUkw^P#rP#9p==7&4?mRAs$xrbBW&^zklRhDB2i^~JqKd0=yGd}Pk{Lsh=fXI%{y_4H zW;<>PoO1Qt!%p>WuG+(_$e0|I*K&BFm^rdtOsYlS9pZBKH@IluN->tkhzaYJL4-d3v10GcaPC zv#gj{okxO+n3{N@iMpC4uAIB2163IriBEl6MGwYQ&y9kCD{z80xELW;;7~{=73Wk# zm8d#An0zf-Ammg=n2X}PLR6{)VHZwnyJF?MOb$&qZ1(l6eT!1>Nw66edWmTX# zyhAVB(E@L)X!I~cFc%1=Z2YALPY{Bep7?NUzU-40VZjIsi4bZvB)Y#h~r^xmnFko`O3faMxuLt)Y!Yc5;8cVBH7J!#s)Drkk zTYV&LJrI&RBlPl1G2`9PMS0TwCjVJEOzw{mn`6p971px@U*71A3ovmyO#gZ5%8Nj~ zdN^I<<{OUJuSs!2?J>%zaUMtqiUdHE^*jU@?uDA85`YSZq22F9VYayeeqydXj z^|s*$idLi|^zErnZtlwgG%;6`soYKz099BXpEj`R7%boE}G!C2lC5wxT$Z#=p zg)<>6>50$8IqLAFDCOlw08>g3kyeR0F^s!51(2}dev}Qk1~yQ|HaC^=H%3u7_*1|O z`|I5>l)vEg*(NU09B|pY->lA@ZbCx7?O$H-@h%PVweGm6{PNT&=;%{qJOPl|b@xakvnjXY7wmMH}`7n%ePSQR4rl&ROts zj@qj&#rwVZ7ye#5`tVNu9gkOB+KKW@!w(&Lf}wH5CAf#J$v%yW#@`=>S?6C4JWE1k z4`d@&`BX5dj6>9}tK^T{J=QrX2Xb;~VJLl$#6l_FhY##`^9=D#9j~lPXL1>wV_B6u#9%^a2G_c@5537X~32zGW!2$akTh9 zYoN_B?|n>lh?k_}yT{$D@s&6m*C=;QG7qZ^q7$W>ikQWw9c!Cb%}I6*;!*m8%12F3 z6y+THZL?KMkesZd$e~$O+LQB;$@Dg7@D)Ro+S{i$Sdsrd)R?gYE_Hh}aGJVQFz^niD-^)`QJAOyxEV zBJRrrh=-LD39l-nNB&(PC=RKe%;PA33H*xMZG&xI;5qtRI@&+FYBOx?v};j+R+yv; zH5VD3W+cU&Svs36n#_SXlTIW>Ij=eGn4omwbmdIjRiPa?@63@<^n^cKPb5;I*^lmS z5L3i$6JO+b6s3e}3RAW+GNud3xbz0|)5}2X+hu@=^X47>qBo}Tr`M@on;ooFS8TrC zs&*0}u@2FP+OWh7-%bQOL6)gbVwVZKv;=fRGg4D?f?7{*NHXZ9P*YawD88)$3bZU;p^t9s@t@X1dOnadg2f+IH+EcV932a_YF5ljV)j;%#NZa`L6tJ1>OI zVREIVBHd6$5zzS0$g~G}L@t=HFx#~4JeOT%^`C{!dVlphpU~G}K%t%?-IJ^2nCckU z;j`Z$&@k~320eadIZ#0n*RG{?1sP5nD~ywc>nk}ul7c9gB5b1`No@P$jACP^hd2t(`;FnJ(IXi z{Bhqc#5Y{r%~a@5O1Z-)v~gGf0rTXz85G09>}MlO3rKjp|X z{TaUsqq=;3hhTH^2_t+$O`DR=LHs4ddjp$pXJb4%@(R`dw7o(F-Tr?Pe0)c82nB0T z$y}t~$+J=ZP07-?4z>ROYbSzLrT()9S9I6+sIE%Sr(b<%j{sce8|uGNY=^pJHHoXD zr*P4sEIfm-0xeZE`WNHZwPA!j=OCdEBi%mhDfIKCZEokr0!|4R&l+S_nrUR9KU+kF z=MAPE^XPId-x;s6UQq3yz1%n&tJdu%G+iAK&Q|SXao?Gdwq|89nb1*r>EUuEU{!IbdF^na_Zn*cidA4#hjGvm}C%#o$ zYAnqCh4y#1W{+~wbv}No4q95ua+(kS!TVCY7f5^5lZ+|&*EtBrM~C*HOV;5Q3R#|c zbDvA5d7_0F&FLNcYRxVEx+HU98^bxL@xX{Y!msEd zbOeb7ExGv+KOU>q3qfPyIRA!`?rKJl&Xvdm$za&PZpq0r6|k#*VBJ`f)`hzCK=7&J zVkn5y-i%@Z5g?q5eqqDmaL7lxGfd(qSQFi%3#QTI=6nhV#doAuMNPkD#A9a zz3OY`a)yyP>L_*FRi2{G%wLSNy3)jOBR&EW@yF|0CmBykan_sc-5t7~P-85iy8ABF z?pG0`vZGk^K6VEEQ^cp2hOnzdJ4~<6?Vxm@qx%B0-JS$z0kj+p4-WUT$JSTcie>J6 zfzM@DY9pjKJ=hk%(XQV_K|KF`|37Kl7no9cNH8f3t-B2}jId5!-J_)j}lJqH~}ZY>N*ZJxz6Q%@O>UqwF@qN5!Ggx|JL^Y9p}G332$w zMqTfSE>&38*B1YY!cO=l{?zX%`wtt2AD*rD?o%27YAJ<Wo}dj>hmp%plzD{ zBOb?hyfuei31g?3+(()R%m*Lt$}c`%uo5~)d_Ci9|=x9ckI{tf)gr?#Ih{>5=U3r{QkjSPfyCak?cn` zj@Au49C|W5;j=+%0h{jlIC+6#{Aag>OLo3GyS0TVE%RZbYHugyV89r>YU+(%mlc&&lxOHlM}&v9)va6OKnaSKblqNS(mz_ zQ#1@?8b4Y!?5%^@2z?mWIR(ZM(*zagn?I2ZoPOV$&vLi3Z94AsG#z-;1*Iu+m8Akk zhJ!rO(w~lpL0|6$P|G)!)EJ>3L>URsgymxr_XpEZ$hiKul2E;oF;hHb#B*yI7 zb+V6*7*lJJX-pd@wj`GZGYxr@Baghv=kIU5KKK0%QO(mTmw45VMWih0L(^mVG6GfB zo3vmLD65)k7{N}h_{tWM{+y<7(Y{ga$Dcgcc=dsnfQN=d=E-17yXeh9$U`gUg329F zdwfpZHP{Ydc4mytDWaN&DyS?*ovvbgeOY0C&rlT5LA=0~p}L@Pa?+kuR9A*=@tiEJ zY3TFPb1nMm*6>n*K2`Cfs{?(C(?w%x`0o-}8psu;h}~DSmPV0VI1Skt>CeM$jc7HM z^%up8_HfkIMVfkIOxhc}ysvJAuS5#YMBP|ZoC~zje%nt`m4?0ey9?f>VkK6ERMmw!*k(k<&xt@(?hC;cyjReVXb08+PwoSK^SxGmZiis3Glc@04{`O7DEnziPWr-OFwc2%wN--RmGh8wz&cbHS_6Ftpj=wv1z zQqG76EayCL0e=YQP+BysL?pKdo>&F1&?oZ$@~XnPrlI zdiL@SmItz@91mTxP>Xy%Sv>H^bjltWCgz97=+I&`-8podO8knC7A-@~%&J={hma(j z1E=>G8$|M$xJGZk8~w?>)vl65jCweGOE`7Av*Y+YZXS@%7mG36bO4upYxu&i(u3H3 z&Tb3WSeyXp6rY)`tgRz#fp7O2xNpp=sqJYeYo>59L%<}1if7u`RuRH%4cRg)R+sofl+ zuKJ4GX&CQs47Sq9)hJ=yV*DGX&1@wNTi;vm9?9UGucapdD}hZDyY;G?$+s31n=A1z z&;}G&$BZ2qt7)n&sk-jdDd>{+SR!$z*jH*#Wr$sgTxk*Ll0#p`K316_j_ON1;bWjN zUVV`M4K&C$(^l&E;ug0klEdRJi#Bw@o*=~l5W!byu+l^kuoEWrdb-k;#S3fCcsHNh z!_JPu3`>!bVb?m8!Fu_;Ci!OtkSc?)seA7(OTf&2)&U>CI@Nhr=%T{Ng*^oMWTt8) zig5em?7xtgoB~mSQCCHasdTZDeD2|jDVVL=ttE4}zP6lR||Mmu!^hx>-c#H&|!0FV4t*KXV?e@16kwyo;pE1sL15Bvp*>PdL3L9~uveNWofu zSiFUA@umw^-dyT}PjTt~sv1xF$B}}bCGq_9Z2h7|rI7AQz^~x^xU3^s_8Nll*^*#- z&T&}9cL>oYt_14VREY*b6V8z|sC;T`$FHur^C?ctD;Bi)Pp7r`tytG;|Fs2*-Z760 zG|vLvOJ36hpp3?)`{L%7uL$^&+UEP92OfF(4wP$JOgpepNhxDKSyv_P+kWJ-6uY(- z2Tb+We5`9i3^$Atv7m5+YnUWSkZKro8OeRhc@GT+_%EY&#~OBQ9rGNZD+3sC{n5)@@n*{4 z6k8#v$uq<@mBwctNSEJ_-!x)Wd?u=P)mTnXh`XNh;_6s3gvK|dq;iVdA|rxoUh!-m zK0>rbz@A((n)NRk0q>%U5b(&UO5 zpixSFG+YU$$81)DQelHTl!ulZFl2!9_MtZ1p5UVhLdW_I?20zazgz&@IVLDdl;Q?XbfoIZDe_VOHI=FIlKB~^f?tH{z(zbXgYR+lZgzKs%Vtz6V|dj{ zdwjrl<>f&~!f&}cVisf`*ZXsZ9OXhss5VK{wx5~-=tBEy40tdjb}t`0Xcat|-T7qH zFlUc-fck|4rOBD_zQuI;4vf&gE`HhIkoWtA7bp2gK{TDP%$-u@g_fB#-fPSGnr45| z693-8Qxsbci(9@(=rrVUC^kA7=mX2XQB%tqh2o68OUGmt-DJrEG3tcLc=bI$`7opV zaNA-9e9^4q6&FDvSCo?6nSX`)M%xS8mkX^Bn_0udkkj-BU>wKulSve~LbvSnzeQ_5 z9^0ZFuW7yXKt8fvm5w>Y?$|{R7(Ew&0`(!O7OP zR1dEmfT&PpSthvbvNzzD@8FOMj_0B3AP`*HDM#rK3p|Wz@;gi~CM>E0+5ah}*X`9~ z8DoP^mL}19O03=x?*0Q4=&GguIW{12Hd-B|$sq(*; z)ni?tsG|O#bdv9?kAB+I^9O98iv_v}E&o{_T3XfIC$Q*?617VZdIkM3FT|1{BI19B zz#^2^tSP)|ORU{$6PUbKAgLV4R)s(8G=U9W0b`vds@feYQ%twkIrfwRp3f_E#wEd!XoDfhjfhvefm{l%vr}qsHuaH`o+yodE^4 zG5Aqa(vN8~JO-iT5d>(w;}zEAQa@TPgN?hC+IS6=!*b&(3xy8sr=KZ zJ&)Fpu0lVft0kF&+WmJ(3IUVp+vXTp<8Ftk82s8Ijo_qHF(dhMkIW(||Dn^3mtHEQ zM7mt@88Y9>y;ej__c7iXj6g2|fAX=ksp&}O(m22#zf|@P*^K3wC9|*hV7pRYKG#5*YWA(XuQUQo zg*O?87zBx@?I8oh}0wg|Y;HQVR+XpDsXg`iV&l*s$!d-nHW})gZ^z~bxEqNw6Fz#TV`Id`1wovRr>Lbm zfg}i#{0>YiS&od^4JEXEWdI zK`T*s2+wswE`oPL8EH=YRqeAZM6t>H&^G#&F_bP`&=2K)!rzIh#6ZR#c4J=u3b5$7 zHXzqTKJ`@vcsNTycZB$5QwDc7CD5mTvlikO*y}r(bcvIC_d0hT6FM80iV+*Ynq^*d zHSQnCi3%Z75fR;{t3!HSQ4cIRbJt5|Kqalhl|JBEFa`{qaMKl=FqiV&m%K3U?f`=C z?PdY%k1qJ5c^n(l)VwY=t_QXIY$F9ec*V-8c14K(UZnIw{?w}=ib}v}EPO{Y&)*oz z>%zJsE?WNMl>qbrLddYrQOg~o%pqXqrcJS^U=#1c%=mDX_GK>F7dUv@>t%AxFY5>o zp6V`+okEuEC}vp0RL#+%msoIq5UON4ib!}Mp%Hs#xZQ=ATnp|c=E&+SPgv^|sS9rW z#@1L=w^14)?m+uXC0atwZ_?Dy+J3UqZp6>A0k_rOdq+Vr$oE*Y*+=lfnW~ff~&JAw^%$V~n-+0#^NSu4GAK%Ujxg z4nJw?+{+!c#NjeyX0{geMZIrCFJzKh^W(?asUVaE#RgCPrik+P;f|g5K-g>y-mU`n zQ3NZ`h36XZtt9!s4|$&%_FkP^)$H}TAPzUihQop2;4N2dZ5_gr7v;DaY=b4-t0Et( zLcgLbzhFnd2<{3BZy(EUr9;^!XzmYFzJ3Tmv9pp>sbZrc1VG%)Q*2zF&rmyIIJT2{ zLQ)6krG9#Nd1CI@7NSVBqjbiv*7kozx?k+S+Zc3vrzkC%Z z3@amnjq$)x^h?#mZ&+V|{W>vKR?*0>g~+W20i!{$gAF?AUMqSxSamx#YnD;^wN#}3 zqC;XKry-BU;Va~5XMOM`Y`)||KY=4Yo{8SEHST~CzZsp^i=jz_i>ANq%n4EX%6M@~ z;~o*)Vx^x5Hyxr<^xI*2bst9rCJ)$|DQ@_g4Uw)b;=P)#Uy%`+x*}C{(5~Lx7?;|- zCNkQN0P+otSr$G}dvQUNtBEtS8#mu1_mD@oi67tl1?6GsPZVpm@hhlhm5XwH4MhOB zE^8s6nm%XBQmJU;!WK`ufy!_@0V^Yi9hJH(3JXj2BDnjd;i8e4_Z@{d6k)T4lNIV~ z3m-ZLp7c(U_c@6U15}KbtF?A#1 zXgaY6x6VnkXVsY3zfK)8ZTN8(Yte}{%?4k1#oAAp)pkGlxAsgpDGH3M<7l^_6FXbu z-_4b`idE+V2yeUX~A7`)UjNTR})|tl^>c*D50<*U)-))~to__vP zH&j~KdjBO*qZp*XbNy)Tn7Cm5S*+->7o2{Z7%Q6D*5^AdV87mLJFhwa?(*?3_0$XH z!zqn=>UWF1kG}}!dcz#5ZP4AzPt0(=kCka*{gr~v7NcxVK*#eLXr|967m3Q-C)@C! zRnu@R*OkF1`pR6z44@E%Qh&=PWl8hd>58uqj(hPxOTWzMjeC>^cEIKO#&!vwp zI0g6g?&aVJdn>@qqxcFh@Sz!ZDzC?W;rxM1v;*KN?MK52GCBw@|w-r-0u*>rNFAb2)*_U*7B++4?&_ z7PAW`zBt$ngW=sXAwGSx!N7J66lJfF<;EGF*1!ya9Qv!|3zi?J6@+0?%4@b01C zpc~hBK7Ils2Dwi>!uMEbWn^dY(~u0C{m^_7CMG$%L$#a*P`GozGaAXrQ+^D+F+7>P zCzs|QJHfn*Yk~d)dhq1FXQoIGB9BIezzN5djFTO(~j|weC_H|*K5m3NFY3>H5=Ay_vpCc+^T# zyI%Xa8*~?rha>d5)VHqHLb}=rvR3Z#pL*gx=Y`N~K}Vj9Wx4C}B+ESk-TqtcZ<-~E z@AToNJVDb|(5^I|c$ALD@}Pa#+4k5x3t#Wj`ItICd@{fC&^KRHC{EY}#*KTM&2XAE z4j3-N#()3$!ISW2F(%Rn>C5_&*V%_caMOD?M=Bx@`Azaz;@aOYWcDcsA}1yaXtlwM zEuhgsKT=BgD=__Um-6ZLlhJz$+m&tf`Ky?CcrX}y@P1PH*E+->wAQXJ$1nE{KBXE0 z7IVwbn*;Vt47jI@j9L>c@?0-7#rHnUZMC2NGIeC#O)d4sKI;sZcw%{psRAL7vug~l zPB{Lm)#_~Fg3#vX_dS!HVHXDd_MlWC=sqrTA)-^!GurlnIBG#)hxpiR%weTP9zYkr zobDqKwj_~q-9pD+9WX6lGfMyS9{#oI$T#c%)7n{wMb&qEe*^(hKf zdyXtSmpm2kfGFO>7B!|#{`j!N-yc>P?S38SDqA+}`K{ov$Y-o3SE=)L(->jl;^ag& zk|oSzrjXxm`h*L))1_}SP}es6iq|~xL6Y~QjhbC@WkR(-HOwHqd&EM~6qwN|n`bDUp>1kE+(Ek1d{pl@xD1t|E((rCM?ysI|6~ zUboe)9!A9=z<=Q$`csY92co@v16Iy>u%W8d_Ai!-u<%Lfg4$-`JgM8EPzV1>Y;I#@&v67*J0={vIQ zx2}4>hVpEmO@TXLHgj)l*7C~6<2gk^<8H!hO6g|OTk_q}YbG+A0?g=WpYRi)av>Z+EfBRPI(3wvFE+EsG@rQJqTot%t^uU)9_2 z*kX`KSSn%_@$xofZin|=DQFSIobBL$xX)TI6Sv3eNQh*m~vf zK6=*2e`N1PwS!56S?{{&fOp38z@s~%r0-zy@*5R;BE+?r9_T~Fi~<**rx}2Ip!vp0 z_Ncd2?VQz$^6TnKpLt8M3TM5!x@wvrExGwJIyn__#!D$QDcrdc!0dd6s_m@XjDtH2 zsrKpl=O$a6GvtZsbb)D^ivh^M{#PzP2t`Mw$F=h+0aU{Ti3Ez(NjyiI6e zr7ilz*7ogy1w8ZGvxj-`aZTT)$`S7MKlAOfCYQPfCv8UAtFdS`eo;WdLt)a{H9rtE z=D|hFoE7SIoc$*;7I$8cfk_Sidbi|Ai`CTc_6kC0JUoV!Y9nN4a?XO*A_(8!Rs0hW9|3L}IMQZMUlq=xrW90_@VEHG&putAufeqrh-S3(BN zm6uG2ik~5#4sS1kM}M;?T8utlhtRd`!&)b*5v;KJE|=wJHa2%aO)(8C=;=f;i>-Se zyV}l1DP>{`4y`-=!p zZJuMRK6y^tJPL}5WC@*Bq-lM_qX+TD$IZ<24s&JCVjJXZLyoyMyLNUIym%qS5Y>uij~O` ztMBtMI6nCf-0Y<%fqhIOg9@((wPK#tBK2ul_{adY5Ao(%B_|L32!?(73%{G&;YfRy zd>Dwo#3Z%te7p2(oLW3 z<#)oqTH#8F>_xz<27bRjO>6vSZ#G42S#Gt$fYg^MBt@Bc`rL>_#wtSSaNO=7 zG;=Q;d&9Lrex3mcl&pNI_-_gv%roDW?YZ`d!F@_1ji*wrcVN< zF=F+^4TANhiShn}`C9_M?J4IZ^yk;jWqPR^+-pkWs2EM;E`!-43|V`-kmBQ1EAZC< zRUq$U!Ed5&8VX(m1rWH5#J+ z;9DVw8azD@b%%ch5c0ZR+>w=)i{IL;8&5(Kai~3mKq6Gs(xIp;R%q?(VU!Xs3@&HefWFq$W?L*eWyDrAGPED(~ zE=X8_T#Kr_5fN!dFAHbs=C~Usl}?RS=#$yw1Rai$Y1MvGP-j1N<_G6M(wklAQ`0KK zE7CM8D(^qGRwl(*i_kQgK)>xC{fr*XrFjJp}bId z#l+^t7pRfG9tkWZ?IZAI_#mfm292fLK^f$PAH^Tpa65G2)lQx%G?94Yg%Yr9L4$Je z4hr#*9{kg$#|}COPtf`Q zYSZD8ydVE-Dg>X&^z?$pv-Ag10bSgcm=vp>0fY5? z^PE#6uNnF>=6X8Z7D2??=-)B+o1vm){MRE{_guM!UmkzX1tl-{m>i{XFjp8+afitp zA2+&nj}zDPMY#$hN;dq6_j9Bkg{zN$I- zYSxAkLcDwlhgEU%I}xKHZ40bC?1{PFyz(2?#olfY@oB-B%{R0SaRicRCpv@#tm>6% zF;+#s&z~HtXiRyUUfT%Qv_cdMMyVmawltA(aiVI)xFugAsc=@3oOiZx(5(1rM9i^G zunejN`}(sF`}`F=d`^b0&xiyK@r;WnHN088yA(qQoWGg( z5}~Pmx(ku;-97tT!)Kq;=_@76#crlewXB;U8hWe2{fJYb$Q6U7HWHnUtN!uAJ>v?M zU^bHQ5wpD$?AX{?Wv#W5AZ`b^h%c?RlUGrP^xF-bzu1P~Jt#@(=P&MVz=lXNECTHi0M}I_wQtFo-!wyiQU!$pU@HKT zUoi6KUf78@m@*SMjgRQE$i+M!gCJ?#|ISKAq{qL|mA{>GcBTKagiyUOLa82| z{s}obc%DMf?9^WVfC2rb=3qd3GacLHjXTb!C1GUrm-GS*=8bKkcX@B_k^0p9EA^;8 z2Q4j_!J$XL(aqJvyo+-K_uBssJ>~}P!l6h1mp}d?rGxojp~utkKlAb*%1kgH_4!La zE7p!|S6@HBbYHt>p^B6NpkYxes5cyRik#mtE2VJ?mIzl}&p9x`nIkO^lk9xZpLLa> zr@#2jwre_=-?R?{S$mtbUGIp~w}%0hDN)kG1&ZDb#7#@+W<02GeoK5#S1J1NB+ivg zWU-Hb)Hc*3X{(N(Jbemzs0bp6B}HbinPD`1w-LMWuJ9u~i)yZMRAK1|C2uLuYKb?S z&l!YIqoo(V88<^@+WfC+1xs+Q*SsnabR_Qf*_2#dUK&{42VNcaI5pVpcDRC;E_4wI zpb(qGn0>4tob{TqtqY%s7`G$Ij=Hy4P$RI6?=J?D%CN=%V{*FRjq=J~D*?G5p z`xUlTAl=+I_V`bA_kq;~pClK|bMm>C*GE``Eh;6qxP3|S=DGlmtqKV*GDd>^!xis^ z<*&aCyUa4$276^QqIcR>Grs1VLNmCfPq!(8vSs8E(Bv2D#Lf{BODwL>5xr2z1n3N%Qo}N&SH`!g^^wX2wVCF7z}J)3R5><--=nnOtmhAP~O2 zjJW74uHFm1QP%9U9Y!is;;Em>hI^|3dudM8QD-7I7DZ8WAd>2<%b}v86Gbee(s=%N zynep7-5HITE=xgMaTFs(Qks%)s2rCIbI-2!;7P9Y;Y!}RB7=vp`nK>n#&$R!PJX4o zGnDzuv4mmRjpTxf7uDQCb)-N=h)3n@3ZCJy?<=NpJ?X60VW&ZIDHvqZq z(~IV%g$KzoVv{>tz<|}DG)6i3ofn6JkVubp&W)2H63UQfHqF2Z4ScHNEIeDoh#$yY zmh?j=gi#k%jZUqdg$D@$v<2FC3`9vVH{B@Wc_t{rRFnV{8DA9p&Y~3!ePm^cX8D`k z80plU59RX|9_4+t$U=85Y#Xe+UHtJ0ZKt$(UkwM>mm$4zK}AQlDs&*o zoIncuB^|Rfne}8JlX`V|e>JWIy$$^S!D&k4ec7Po%0pYy?MwC+v|6RJrw%LZ8=(Ac zn&(@u?h3KcZG2-?`&@?%Pxza4x<@|fS1}Y_ZSloVMUKO86y5PzcfQn z3W0|3d)^AFs=#o;IDd?;v5)Ag`Xi&(l=oKi=Nsfc^#1(SQe{OK#(S-kvb*2yb*A6S zxsL5`@Le~oEsCs%1OpZ_5+deNEBnlbF512@CmN8mPz&mOwpd*tqz>!^<*uf%fpxc* zTMPMHg+91CKrg%RItPX!Oa186;tosY9T;`9%wby(g>TFAZza7C5lVQcfy4Q?KmT9m z5)i{dL7sH>1oH4X(x7%kdB0hd5f}7*c`Ps|!H`xJA*cjxsC%kJZjU1%$k*plat6#U zXkp#7gIOutaaHu*US$B-tgqu#hkF4}KO(x{D3#urYRE^Hdqdd3F4>3v!~6jc-sCy2 zkDJN8xF62j_I-HPYpX&_tp5bN{+c`p5(m_~Oa|2fOdydTi~5zn$@gi%t4Z>Wk(UR* zTCg#_qI;|PLpaF%hoI?w#uYl8>5$|C;nZ+WsOjit+r!Sgg>F+irrYb?ChDP&Yh0-d zps8)S%`!S;Lt%Z&)oE%74<_nscd$dZ*Xzq!0-Qj{)`#@1bq0KHBbP~gAKJP3qNBV> zYld~(-lv(pELBPb41lPmnGBo7JHH2g_4`qvc5`2aMViT_Qo6#MUR;_KbWnl+Q_6*q zCmE}HA9c#bAI2?{~++4Jg5x*NVGWW%%&-}G1O*z2^BeD~=a(BON401f)p zBIk5w{aKXqz)uf*+rVTj8ynt|A#2wGtMM6UmgXbW{6x{ScPDGgldGkWs>Js~A!Ljq zkZBB&Rd_44{g|z<5S%Nj<7tX!RDkQ{=ri~|Sq!Kr#pUS8+Negtk$nZ5>O%b;b-uK7lq&bElCPJmz%__mOrU9dXS1K0 zi;l&!9Zxlicwc+(AjwR4H^u8s8=voUjn}fr9Q0xVw1S)G`D}${?S@d&{ftWxX{h2p43*5>YE;# zw3R;9AkhQ99PS*?kHB*5N}qN0!s=yv@ej>($Po`o;-&3Nkxx6?@}Zil0da#d;3Ml!p{b8hr1X0R zni{jLY88A#hNQ0S=BxYdHPKR2DYo?T~Z#TEn&dWMjP{Ip{ zrBP$9(fX2rGsTmviVSexTeY3K8m!7A*;aIot4k)&ZDWE36xO*C;vraT0H6{|%44fB z84*+Ezu=_w?O!JnF78i=vT7fMOZ`w_D+NPs@fKAEnXnx;ea0SCz2vhlx3iZWR_fFh zXOS}nfudz^lT^u(4Rv%snz~L8mlR)GuXSVcz3>{?+zd%N8in=4sV0VQ8l3|MZ5&KB z60|z^Vl!P4WO|^e;wY}>k*R%)-h3NhB2X6%0_KqWSA~~6nOBHIFj;*U7Zx|0Ihkb8=ABN-LT%_1PL=IUw zo|JNQnQppr8F^4#-o(xmGLyritXdYor>kqeAM*BzkE75m)~3aG;`$X=T08U86Bkt+ zjiSW%X2;OZ`#0z(aPRnXH1+4nuz-}^teK+e6$ zcx65JR}Y$=JZ3JTyEVYvf7r0nOnm{IBTa@Dto*MJmeSv`AbRs&8em_kiB%7-gE1Ro}irMzgtkJ&hY-8jC1w+_d zmGH3*h>-u`z3@?)P%=9O70*^Qe6%DQ0#H1QM z^v#CJte-5k5-+52`c9@pN>3EH+G?_k@UXE@2>`|R93dw1z&-vw-h*L~sY5)$GCeQA zQ|`x89D>grz-{{|T81lmKIW+w$~uW~eA5|1mS0yLi3jv|VsPodPHVg1B-^rP16ADx zc}%WuiG#7Zo|9dg;(-qm8>RD;)MLr^BBnFJU%1qV_U@`)5|S>eswIt3IwIz^@f!OdNT-~<&|5!;$f^MC}m+*J>Fl5DGDp~W|7t5;C+GQo; z=?;cD!2+U>S1I|b_dsk9>)C_4e-=a)Un^Oz4+T4=Ux~l2XPvZ@g;TdDY`d5UmXU#8 z;_0_{j5B_P?ytnsfU(h5Wr6#iMQ^!2(4<1jxdCK}Y)#2|io8eRMR;8Xed4);egR{l z7J{kS|<=R%9t-H#-0qZ@l+Pkx*A=3d#Yk;^tv@_?j^!1TjbMY76-!CofImbj(nZ*-E2 z+;4qV%L4E0^2}`#CDs%X7EmgGMiB+_OcDP^xGDsymRPhlnA3DOq2J13O|b3D*;ujX z#K)Hs>W+Wu(!H|M)EL}jo}xk8eP`&{ok+vKiY=yc_5kFK84;9HU2azE++F6-rk5KY zrKW($pnfI<>g9$gD(ST4XNTNL%;uRtp3!yqGzC^IOBMMKO#sU?0CarR2To8#XRFA?2Y3eA2;-3IsVT47&reVeSd^z=d%iRP^P z@MbgY2BF{xw%8N{@K&rY>0VZ0*?hzFg)7kbC5gSb=P-|94^0x?Vnh4RveYK*b$2~W zDf@?&Ti&u@F>r}>M^KB}4wsvmf?2}Tu+g{Iq9e)i^G{y@#I}|k*7?Yu>8AUANvOoq ze|`99Q?j(>)5n?qkuml~bkAE(VL_h!m2qMV8aHitc8Cq9M{l=5ggc!0#{SWex4Vd! z+Xs=!A;N3l=`ZVBG2Z+@U`E9(NIK`MHm`ViCVXHRct;MCrCe4O+N=d`dM}U6niwEg z%mIB41~4UHV7@uJnU=v3j0#q&ue$&1eC!p1;mF*HyG^go4V2M)MzI8h+D<4TTJ3?S zz7Fyjd{&W?)x_E*7GdyPZ06aLZHCa6*mpBIxl{Sbt z3;D%hy$BZY_LBsz`iDO<(EAY@WiPc;lT`*WHxzh7xlelsYf<1c(YJ4O2^@ioMq6U;r9GQ>&T=ehp z4fd;lc2A8YcI6YvxbI5pLHHvygJUX+b4b%ay9(x|2zcM7p`jtMf=38m!P5*=eklZB+f~S>5tw8%&03MjJE45*Q3q z7-oT{H{LFJ@9OpE^)u1~j?wrxIs@rJ_k^1z&#Pv$uKP3W)$%^3C_>syiLkS0v(-Y5 zN29Dd|G|j!-;idwikt0#x_m8EVtc=Lac)Y6r^X}k`iRQ3TW%pOq&R5*HLLq`RM7iW zy^Hu%qU8n*Ure)5WJYCwC{h=k%ifd@cygKZWd@_?veG)^OgxU7v459CZ3c;I?N@SE zdC>bMWPc|=fQ}$ywuSK7qgGU~pQmBy_4E|1YFM?^4s<;=@why0(7?z^)^}7kSB_Qe z`8Vlo9AxvN=aTf{*5fTQDY{NO!pe_*Pmt(ksj$MFf-tdCGa^k3wI=*tStKQR=#o4M zcq~TJ>vifGkG%YIvdPU`z!vIIx9r9M<9#_^<;ATX9K5)wif?0U@h!YmkKDuY@cnR) zE62kZQt!TyuQ-2RY|>q25N^-Q{9)-&!ZpklWA8D3#hv(Tcr0csccC>kEKg~vAo(~t zKh2RGzP({E2n2d}=J*L0caN{d}!D=4q&5$pMAaJ(qDB1 zmlP~tbVGk$w7gd9PpnlbSV$dE%A%HWvZ4tIDSx@Ht&~^JerXeGdU4M9^I~!2^w`!# zF_pL{87eq=xAfImjThnXoje$&rR8&1T5gh?fF>{q5|fZZe~liM?ZwbJ?80IqJY`%0 z+Mp(`fp24v-b@GU@&Y^YNhnTxmNt*=7V!Eon}(J)_vWRH5fbp1C!x)^fhT36V08HZ zvf|(ZPa=koX@RGAjneYK6UaXb9wE?OYQ!7yB>#^$u8p7VY4L@V_hExT3bIB>?<$X= z)6j*Jb7We&hsa)cK!fRJY84$F*<;mQ7hf!pIX?C5Q_xL&MqWWH2d-WPVvPkJX8y=s zK?Qy4-QZOoY--F-5tgipjIV+EsC>`)^jy-Hn zw_xLnVJ=AvhTe>9Y&(1JK5`eH>Msu|lbg@-Jv_5(Y;G39RMc-@N|c%Ja}_7&ozcR= z!lIR7_C9c%;^R(=J6|8m9e$aoM)B~irtXCF53LF3+VeLw>IJ<^F~_aWHN8Fl{$$(h z1G60d@vd=VMo6FB9_HQxyUQ1@%-loAN~v4p^<<9 literal 0 HcmV?d00001 diff --git a/super_calendar/super_calendar.py b/super_calendar/super_calendar.py index be1520252..9e2e2293b 100644 --- a/super_calendar/super_calendar.py +++ b/super_calendar/super_calendar.py @@ -40,7 +40,8 @@ class super_calendar_configurator(orm.Model): _name = 'super.calendar.configurator' _columns = { 'name': fields.char('Name', size=64, required=True), - 'line_ids': fields.one2many('super.calendar.configurator.line', 'configurator_id', 'Lines'), + 'line_ids': fields.one2many('super.calendar.configurator.line', + 'configurator_id', 'Lines'), } def generate_calendar_records(self, cr, uid, ids, context=None): @@ -48,71 +49,87 @@ class super_calendar_configurator(orm.Model): super_calendar_pool = self.pool.get('super.calendar') # removing old records - super_calendar_ids = super_calendar_pool.search(cr, uid, [], context=context) - super_calendar_pool.unlink(cr, uid, super_calendar_ids, context=context) + super_calendar_ids = super_calendar_pool.search(cr, uid, [], + context=context) + super_calendar_pool.unlink(cr, uid, + super_calendar_ids, + context=context) for configurator in self.browse(cr, uid, configurator_ids, context): for line in configurator.line_ids: - current_pool = self.pool.get(line.name.model) - current_record_ids = current_pool.search( - cr, - uid, - line.domain and safe_eval(line.domain) or [], - context=context) - - for current_record_id in current_record_ids: - current_record = current_pool.browse(cr, uid, current_record_id, context=context) - if (line.user_field_id and - current_record[line.user_field_id.name] and - current_record[line.user_field_id.name]._table_name != 'res.users'): - raise orm.except_orm( - _('Error'), - _("The 'User' field of record %s (%s) does not refer to res.users") - % (current_record[line.description_field_id.name], line.name.model)) - if (((line.description_field_id and current_record[line.description_field_id.name]) or - line.description_code) and - current_record[line.date_start_field_id.name]): - duration = False - if (not line.duration_field_id and - line.date_stop_field_id and - current_record[line.date_start_field_id.name] and - current_record[line.date_stop_field_id.name]): - date_start = datetime.strptime( - current_record[line.date_start_field_id.name], - tools.DEFAULT_SERVER_DATETIME_FORMAT - ) - date_stop = datetime.strptime( - current_record[line.date_stop_field_id.name], - tools.DEFAULT_SERVER_DATETIME_FORMAT - ) - duration = (date_stop - date_start).total_seconds() / 3600 - elif line.duration_field_id: - duration = current_record[line.duration_field_id.name] - if line.description_type != 'code': - name = current_record[line.description_field_id.name] - else: - parse_dict = {'o': current_record} - mytemplate = Template(line.description_code) - name = mytemplate.render(**parse_dict) - super_calendar_values = { - 'name': name, - 'model_description': line.description, - 'date_start': current_record[line.date_start_field_id.name], - 'duration': duration, - 'user_id': ( - line.user_field_id and - current_record[line.user_field_id.name] and - current_record[line.user_field_id.name].id or - False - ), - 'configurator_id': configurator.id, - 'res_id': line.name.model+','+str(current_record['id']), - 'model_id': line.name.id, - } - super_calendar_pool.create(cr, uid, super_calendar_values, context=context) + values = self._generate_record_from_line(cr, uid, + configurator, + line, + context) + super_calendar_pool.create(cr, uid, values, context=context) self._logger.info('Calendar generated') return True + def _generate_record_from_line(self, cr, uid, configurator, line, context): + current_pool = self.pool.get(line.name.model) + current_record_ids = current_pool.search( + cr, + uid, + line.domain and safe_eval(line.domain) or [], + context=context) + + for current_record_id in current_record_ids: + record = current_pool.browse(cr, uid, + current_record_id, + context=context) + if line.user_field_id and \ + record[line.user_field_id.name] and \ + record[line.user_field_id.name]._table_name != 'res.users': + raise orm.except_orm( + _('Error'), + _("The 'User' field of record %s (%s) " + "does not refer to res.users") + % (record[line.description_field_id.name], + line.name.model)) + + if (((line.description_field_id and + record[line.description_field_id.name]) or + line.description_code) and + record[line.date_start_field_id.name]): + duration = False + if (not line.duration_field_id and + line.date_stop_field_id and + record[line.date_start_field_id.name] and + record[line.date_stop_field_id.name]): + date_start = datetime.strptime( + record[line.date_start_field_id.name], + tools.DEFAULT_SERVER_DATETIME_FORMAT + ) + date_stop = datetime.strptime( + record[line.date_stop_field_id.name], + tools.DEFAULT_SERVER_DATETIME_FORMAT + ) + duration = (date_stop - date_start).total_seconds() / 3600 + elif line.duration_field_id: + duration = record[line.duration_field_id.name] + if line.description_type != 'code': + name = record[line.description_field_id.name] + else: + parse_dict = {'o': record} + mytemplate = Template(line.description_code) + name = mytemplate.render(**parse_dict) + super_calendar_values = { + 'name': name, + 'model_description': line.description, + 'date_start': record[line.date_start_field_id.name], + 'duration': duration, + 'user_id': ( + line.user_field_id and + record[line.user_field_id.name] and + record[line.user_field_id.name].id or + False + ), + 'configurator_id': configurator.id, + 'res_id': line.name.model+','+str(record['id']), + 'model_id': line.name.id, + } + return super_calendar_values + class super_calendar_configurator_line(orm.Model): _name = 'super.calendar.configurator.line' @@ -120,7 +137,8 @@ class super_calendar_configurator_line(orm.Model): 'name': fields.many2one('ir.model', 'Model', required=True), 'description': fields.char('Description', size=128, required=True), 'domain': fields.char('Domain', size=512), - 'configurator_id': fields.many2one('super.calendar.configurator', 'Configurator'), + 'configurator_id': fields.many2one('super.calendar.configurator', + 'Configurator'), 'description_type': fields.selection([ ('field', 'Field'), ('code', 'Code'), @@ -130,11 +148,14 @@ class super_calendar_configurator_line(orm.Model): domain="[('model_id', '=', name),('ttype', '=', 'char')]"), 'description_code': fields.text( 'Description field', - help="Use '${o}' to refer to the involved object. E.g.: '${o.project_id.name}'" + help="Use '${o}' to refer to the involved object. " + "E.g.: '${o.project_id.name}'" ), 'date_start_field_id': fields.many2one( 'ir.model.fields', 'Start date field', - domain="['&','|',('ttype', '=', 'datetime'),('ttype', '=', 'date'),('model_id', '=', name)]", + domain="['&','|',('ttype', '=', 'datetime')," + "('ttype', '=', 'date')," + "('model_id', '=', name)]", required=True), 'date_stop_field_id': fields.many2one( 'ir.model.fields', 'End date field', @@ -153,11 +174,16 @@ class super_calendar(orm.Model): _name = 'super.calendar' _columns = { 'name': fields.char('Description', size=512, required=True), - 'model_description': fields.char('Model Description', size=128, required=True), + 'model_description': fields.char('Model Description', + size=128, + required=True), 'date_start': fields.datetime('Start date', required=True), 'duration': fields.float('Duration'), 'user_id': fields.many2one('res.users', 'User'), - 'configurator_id': fields.many2one('super.calendar.configurator', 'Configurator'), - 'res_id': fields.reference('Resource', selection=_models_get, size=128), + 'configurator_id': fields.many2one('super.calendar.configurator', + 'Configurator'), + 'res_id': fields.reference('Resource', + selection=_models_get, + size=128), 'model_id': fields.many2one('ir.model', 'Model'), } diff --git a/users_ldap_groups/__openerp__.py b/users_ldap_groups/__openerp__.py index 044301a31..e9e8497e7 100644 --- a/users_ldap_groups/__openerp__.py +++ b/users_ldap_groups/__openerp__.py @@ -29,13 +29,13 @@ Adds user accounts to groups based on rules defined by the administrator. Usage: -Define mappings in Settings->Companies->[your company]->tab configuration->[your -ldap server]. +Define mappings in Settings->Companies->[your company]->tab +configuration->[your ldap server]. Decide whether you want only groups mapped from ldap (Only ldap groups=y) or a -mix of manually set groups and ldap groups (Only ldap groups=n). Setting this to -'no' will result in users never losing privileges when you remove them from a -ldap group, so that's a potential security issue. It is still the default to +mix of manually set groups and ldap groups (Only ldap groups=n). Setting this +to 'no' will result in users never losing privileges when you remove them from +a ldap group, so that's a potential security issue. It is still the default to prevent losing group information by accident. For active directory, use LDAP attribute 'memberOf' and operator 'contains'. diff --git a/users_ldap_groups/users_ldap_groups.py b/users_ldap_groups/users_ldap_groups.py index 9aaa1e71b..1a70e408f 100644 --- a/users_ldap_groups/users_ldap_groups.py +++ b/users_ldap_groups/users_ldap_groups.py @@ -41,7 +41,8 @@ class CompanyLDAPGroupMapping(orm.Model): return tuple(operators) _columns = { - 'ldap_id': fields.many2one('res.company.ldap', 'LDAP server', required=True), + 'ldap_id': fields.many2one('res.company.ldap', 'LDAP server', + required=True), 'ldap_attribute': fields.char( 'LDAP attribute', size=64, help='The LDAP attribute to check.\n' @@ -72,17 +73,23 @@ class CompanyLDAP(orm.Model): 'only_ldap_groups': fields.boolean( 'Only ldap groups', help='If this is checked, manual changes to group membership are ' - 'undone on every login (so OpenERP groups are always synchronous ' - 'with LDAP groups). If not, manually added groups are preserved.') + 'undone on every login (so OpenERP groups are always ' + 'synchronous with LDAP groups). If not, manually added ' + 'groups are preserved.') } _default = { 'only_ldap_groups': False, } - def get_or_create_user(self, cr, uid, conf, login, ldap_entry, context=None): - user_id = super(CompanyLDAP, self).get_or_create_user(cr, uid, conf, login, - ldap_entry, context) + def get_or_create_user(self, cr, uid, + conf, + login, + ldap_entry, + context=None): + _super = super(CompanyLDAP, self) + user_id = _super.get_or_create_user(cr, uid, conf, login, + ldap_entry, context) if not user_id: return user_id logger = logging.getLogger('users_ldap_groups') @@ -90,16 +97,24 @@ class CompanyLDAP(orm.Model): userobj = self.pool.get('res.users') conf_all = self.read(cr, uid, conf['id'], ['only_ldap_groups']) if(conf_all['only_ldap_groups']): - logger.debug('deleting all groups from user %d' % user_id) - userobj.write(cr, uid, [user_id], {'groups_id': [(5, )]}, context=context) - - for mapping in mappingobj.read(cr, uid, mappingobj.search( - cr, uid, [('ldap_id', '=', conf['id'])]), []): - operator = getattr(users_ldap_groups_operators, mapping['operator'])() - logger.debug('checking mapping %s' % mapping) - if operator.check_value(ldap_entry, mapping['ldap_attribute'], - mapping['value'], conf, self, logger): - logger.debug('adding user %d to group %s' % + logger.debug('deleting all groups from user %d', user_id) + userobj.write(cr, uid, + [user_id], + {'groups_id': [(5, )]}, + context=context) + mapping_ids = mappingobj.search(cr, uid, + [('ldap_id', '=', conf['id'])]) + for mapping in mappingobj.read(cr, uid, mapping_ids, []): + operator = getattr(users_ldap_groups_operators, + mapping['operator'])() + logger.debug('checking mapping %s', mapping) + if operator.check_value(ldap_entry, + mapping['ldap_attribute'], + mapping['value'], + conf, + self, + logger): + logger.debug('adding user %d to group %s', (user_id, mapping['group'][1])) userobj.write(cr, uid, [user_id], {'groups_id': [(4, mapping['group'][0])]}, diff --git a/users_ldap_groups/users_ldap_groups_operators.py b/users_ldap_groups/users_ldap_groups_operators.py index 4de745fbf..8d71af46e 100644 --- a/users_ldap_groups/users_ldap_groups_operators.py +++ b/users_ldap_groups/users_ldap_groups_operators.py @@ -26,22 +26,41 @@ class LDAPOperator: class contains(LDAPOperator): - def check_value(self, ldap_entry, attribute, value, ldap_config, company, logger): - return (attribute in ldap_entry[1]) and (value in ldap_entry[1][attribute]) + def check_value(self, + ldap_entry, + attribute, value, + ldap_config, + company, + logger): + return (attribute in ldap_entry[1] and + value in ldap_entry[1][attribute]) class equals(LDAPOperator): - def check_value(self, ldap_entry, attribute, value, ldap_config, company, logger): - return attribute in ldap_entry[1] and unicode(value) == unicode(ldap_entry[1][attribute]) + def check_value(self, + ldap_entry, + attribute, value, + ldap_config, + company, + logger): + return (attribute in ldap_entry[1] and + unicode(value) == unicode(ldap_entry[1][attribute])) class query(LDAPOperator): - def check_value(self, ldap_entry, attribute, value, ldap_config, company, logger): + def check_value(self, + ldap_entry, + attribute, + value, + ldap_config, + company, + logger): query_string = Template(value).safe_substitute(dict( [(attr, ldap_entry[1][attribute][0]) for attr in ldap_entry[1]] ) ) - logger.debug('evaluating query group mapping, filter: %s' % query_string) + logger.debug('evaluating query group mapping, filter: %s', + query_string) results = company.query(ldap_config, query_string) logger.debug(results) return bool(results) diff --git a/users_ldap_mail/__openerp__.py b/users_ldap_mail/__openerp__.py index 25d332066..506937a24 100644 --- a/users_ldap_mail/__openerp__.py +++ b/users_ldap_mail/__openerp__.py @@ -25,11 +25,12 @@ 'depends': ["auth_ldap"], 'author': "Daniel Reis (https://launchpad.com/~dreis-pt)", 'description': """\ -Allows to define the LDAP attributes to use to retrieve user name and e-mail address. +Allows to define the LDAP attributes to use to retrieve user name and e-mail +address. -The default attribute used for the name is "cn". -For Active Directory, you might prefer to use "displayName" instead. -AD also supports the "mail" attribute, so it can be mapped into OpenERP. +The default attribute used for the name is `cn`. For Active Directory, you +might prefer to use `displayName` instead. AD also supports the `mail` +attribute, so it can be mapped into OpenERP. """, 'category': "Tools", 'data': [ diff --git a/users_ldap_mail/users_ldap_model.py b/users_ldap_mail/users_ldap_model.py index e4a8bd815..2e41c8226 100644 --- a/users_ldap_mail/users_ldap_model.py +++ b/users_ldap_mail/users_ldap_model.py @@ -60,8 +60,9 @@ class CompanyLDAP(orm.Model): return cr.dictfetchall() def map_ldap_attributes(self, cr, uid, conf, login, ldap_entry): - values = super(CompanyLDAP, self).map_ldap_attributes(cr, uid, conf, - login, ldap_entry) + _super = super(CompanyLDAP, self) + values = _super.map_ldap_attributes(cr, uid, conf, + login, ldap_entry) mapping = [ ('name', 'name_attribute'), ('email', 'mail_attribute'), @@ -71,6 +72,7 @@ class CompanyLDAP(orm.Model): if conf[conf_name]: values[value_key] = ldap_entry[1][conf[conf_name]][0] except KeyError: - _log.warning('No LDAP attribute "%s" found for login "%s"' % ( - conf.get(conf_name), values.get('login'))) + _log.warning('No LDAP attribute "%s" found for login "%s"', + conf.get(conf_name), + values.get('login')) return values diff --git a/users_ldap_populate/__openerp__.py b/users_ldap_populate/__openerp__.py index 06221e9c1..f4ae554ec 100644 --- a/users_ldap_populate/__openerp__.py +++ b/users_ldap_populate/__openerp__.py @@ -24,8 +24,8 @@ "author": "Therp BV", "category": 'Tools', "description": """ -This module allows to prepopulate the user database with all entries in the LDAP -database. +This module allows to prepopulate the user database with all entries in the +LDAP database. In order to schedule the population of the user database on a regular basis, create a new scheduled action with the following properties: @@ -34,7 +34,8 @@ create a new scheduled action with the following properties: - Function: action_populate - Arguments: [res.company.ldap.id] -Substitute res.company.ldap.id with the actual id of the res.company.ldap object you want to query. +Substitute res.company.ldap.id with the actual id of the res.company.ldap +object you want to query. """, "depends": [