From dc83cf220b6c7598388587e70caad24c04824893 Mon Sep 17 00:00:00 2001 From: resteve Date: Mon, 9 Nov 2015 12:56:02 +0100 Subject: [PATCH] Configuration. Change function company fields to property --- __init__.py | 1 - configuration.py | 117 ++------------------ configuration.xml | 2 +- view/electronic_mail_configuration_form.xml | 2 +- 4 files changed, 13 insertions(+), 109 deletions(-) diff --git a/__init__.py b/__init__.py index 8ad6203..289e487 100644 --- a/__init__.py +++ b/__init__.py @@ -12,7 +12,6 @@ def register(): Mailbox, ElectronicMail, ElectronicMailConfiguration, - ElectronicMailConfigurationCompany, ReadUser, User, WriteUser, diff --git a/configuration.py b/configuration.py index f0a78af..0327bf2 100644 --- a/configuration.py +++ b/configuration.py @@ -1,114 +1,19 @@ # This file is part of the electronic_mail_configuration module for Tryton. # The COPYRIGHT file at the top level of this repository contains the full # copyright notices and license terms. -from trytond.model import ModelView, ModelSingleton, ModelSQL, fields, Unique -from trytond.pool import Pool -from trytond.transaction import Transaction -__all__ = [ - 'ElectronicMailConfiguration', - 'ElectronicMailConfigurationCompany', - ] +from trytond.model import ModelView, ModelSingleton, ModelSQL, fields + +__all__ = ['ElectronicMailConfiguration'] class ElectronicMailConfiguration(ModelSingleton, ModelSQL, ModelView): 'Electronic Mail Configuration' __name__ = 'electronic.mail.configuration' - sent = fields.Function(fields.Many2One('electronic.mail.mailbox', 'Sent', - required=True), - 'get_fields', setter='set_fields') - draft = fields.Function(fields.Many2One('electronic.mail.mailbox', - 'Draft', required=True), - 'get_fields', setter='set_fields') - error = fields.Function(fields.Many2One('electronic.mail.mailbox', - 'Error', required=True), - 'get_fields', setter='set_fields') - outbox = fields.Function(fields.Many2One('electronic.mail.mailbox', - 'Outbox', required=True), - 'get_fields', setter='set_fields') - - @classmethod - def __setup__(cls): - super(ElectronicMailConfiguration, cls).__setup__() - cls._error_messages.update({ - 'not_company': ('You have not got the default company configured.' - ' And you need it to configure the default folders.' ), - }) - - @classmethod - def get_fields(cls, configurations, names): - res = {} - ConfigurationCompany = Pool().get( - 'electronic.mail.configuration.company') - company_id = Transaction().context.get('company') - conf_id = configurations[0].id - if company_id: - confs = ConfigurationCompany.search([ - ('company', '=', company_id), - ], limit=1) - if confs: - for conf in confs: - for field_name in names: - value = getattr(conf, field_name) - if value and (not isinstance(value, unicode) - and not isinstance(value, int)): - value = value.id - res[field_name] = {conf_id: value} - else: - for field_name in names: - res[field_name] = {conf_id: None} - else: - cls.raise_user_error('not_company') - return res - - @classmethod - def set_fields(cls, configurations, name, value): - ConfigurationCompany = Pool().get( - 'electronic.mail.configuration.company') - company_id = Transaction().context.get('company') - if company_id: - company_confs = ConfigurationCompany.search([ - ('company', '=', company_id), - ], limit=1) - if company_confs: - for configuration in configurations: - if getattr(configuration, name) != value: - ConfigurationCompany.write(company_confs, - {name: value}) - else: - ConfigurationCompany.create([{ - 'company': company_id, - name: value - }]) - - @classmethod - def delete(cls, configurations): - ConfigurationCompany = Pool().get( - 'electronic.mail.configuration.company') - company_id = Transaction().context.get('company') - if company_id: - company_confs = ConfigurationCompany.search([ - ('company', '=', company_id), - ], limit=1) - if company_confs: - ConfigurationCompany.delete(company_confs) - return super(ElectronicMailConfiguration, cls).delete(configurations) - - -class ElectronicMailConfigurationCompany(ModelSQL, ModelView): - 'Electronic Mail Configuration Company' - __name__ = 'electronic.mail.configuration.company' - company = fields.Many2One('company.company', 'Company', - required=True, readonly=True) - sent = fields.Many2One('electronic.mail.mailbox', 'Sent') - draft = fields.Many2One('electronic.mail.mailbox', 'Draft') - error = fields.Many2One('electronic.mail.mailbox', 'Error') - outbox = fields.Many2One('electronic.mail.mailbox', 'Outbox') - - @classmethod - def __setup__(cls): - super(ElectronicMailConfigurationCompany, cls).__setup__() - t = cls.__table__() - cls._sql_constraints += [ - ('company_uniq', Unique(t, t.company), - 'There is already one configuration for this company.'), - ] + sent = fields.Property(fields.Many2One('electronic.mail.mailbox', + 'Sent', required=True)) + draft = fields.Property(fields.Many2One('electronic.mail.mailbox', + 'Draft', required=True)) + error = fields.Property(fields.Many2One('electronic.mail.mailbox', + 'Error', required=True)) + outbox = fields.Property(fields.Many2One('electronic.mail.mailbox', + 'Outbox', required=True)) diff --git a/configuration.xml b/configuration.xml index 9c7fe6c..e1fc0d1 100644 --- a/configuration.xml +++ b/configuration.xml @@ -1,5 +1,5 @@ - diff --git a/view/electronic_mail_configuration_form.xml b/view/electronic_mail_configuration_form.xml index dda0013..2b1756b 100644 --- a/view/electronic_mail_configuration_form.xml +++ b/view/electronic_mail_configuration_form.xml @@ -1,5 +1,5 @@ -