diff --git a/__unported__/mail_environment/__init__.py b/__unported__/mail_environment/__init__.py deleted file mode 100644 index be0b4da9a..000000000 --- a/__unported__/mail_environment/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import env_mail diff --git a/__unported__/mail_environment/mail_view.xml b/__unported__/mail_environment/mail_view.xml deleted file mode 100644 index 59577ed21..000000000 --- a/__unported__/mail_environment/mail_view.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - inherit_fetchmail_for_env_support - fetchmail.server - - - - - - - - - - - - - - - - - - - - diff --git a/mail_environment/__init__.py b/mail_environment/__init__.py new file mode 100644 index 000000000..89dd1478f --- /dev/null +++ b/mail_environment/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import env_mail diff --git a/__unported__/mail_environment/__openerp__.py b/mail_environment/__openerp__.py similarity index 88% rename from __unported__/mail_environment/__openerp__.py rename to mail_environment/__openerp__.py index 45313fe7c..05efe5717 100644 --- a/__unported__/mail_environment/__openerp__.py +++ b/mail_environment/__openerp__.py @@ -26,7 +26,7 @@ 'description': """ Extend mail and fetch mail with server environment module. -In config files, sections outgoint_mail and incoming_mails are default values +In config files, sections outgoing_mail and incoming_mails are default values for all Outgoing Mail Servers and Fetchmail Servers. For each server, you can (re)define values with a section named "outgoing_mail.resource_name" where resource_name is the name of your server. @@ -59,10 +59,14 @@ 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', + ], 'init_xml': [], 'update_xml': ['mail_view.xml'], 'demo_xml': [], - 'installable': False, + 'installable': True, 'active': False, } diff --git a/__unported__/mail_environment/env_mail.py b/mail_environment/env_mail.py similarity index 74% rename from __unported__/mail_environment/env_mail.py rename to mail_environment/env_mail.py index 252703d2a..c4025340a 100644 --- a/__unported__/mail_environment/env_mail.py +++ b/mail_environment/env_mail.py @@ -19,21 +19,20 @@ # ############################################################################## -from osv import fields -from osv import osv +from openerp.osv import orm, fields -from server_environment import serv_config +from openerp.addons.server_environment import serv_config -class IrMail(osv.osv): +class IrMail(orm.Model): _inherit = "ir.mail_server" - def _get_smtp_conf(self, cursor, uid, ids, name, args, context=None): + def _get_smtp_conf(self, cr, uid, ids, name, args, context=None): """ Return configuration """ res = {} - for mail_server in self.browse(cursor, uid, ids): + for mail_server in self.browse(cr, uid, ids, context=context): global_section_name = 'outgoing_mail' # default vals @@ -41,7 +40,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)) @@ -54,60 +54,64 @@ class IrMail(osv.osv): _columns = { 'smtp_host': fields.function( _get_smtp_conf, - method=True, string='SMTP Server', type="char", multi='outgoing_mail_config', - size=128), + states={'draft': [('readonly', True)]}, + help="Hostname or IP of SMTP server"), 'smtp_port': fields.function( _get_smtp_conf, - method=True, string='SMTP Port', type="integer", multi='outgoing_mail_config', - help="SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.", + states={'draft': [('readonly', True)]}, + help="SMTP Port. Usually 465 for SSL, " + "and 25 or 587 for other cases.", size=5), 'smtp_user': fields.function( _get_smtp_conf, - method=True, string='Username', type="char", multi='outgoing_mail_config', + states={'draft': [('readonly', True)]}, help="Optional username for SMTP authentication", size=64), 'smtp_pass': fields.function( _get_smtp_conf, - method=True, string='Password', type="char", multi='outgoing_mail_config', + states={'draft': [('readonly', True)]}, help="Optional password for SMTP authentication", size=64), 'smtp_encryption': fields.function( _get_smtp_conf, - method=True, string='smtp_encryption', - type="char", + type="selection", multi='outgoing_mail_config', + selection=[('none', 'None'), + ('starttls', 'TLS (STARTTLS)'), + ('ssl', 'SSL/TLS')], + states={'draft': [('readonly', True)]}, 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() + "- 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)") + } -class FetchmailServer(osv.osv): +class FetchmailServer(orm.Model): """Incoming POP/IMAP mail server account""" _inherit = 'fetchmail.server' - def _get_incom_conf(self, cursor, uid, ids, name, args, context=None): + def _get_incom_conf(self, cr, uid, ids, name, args, context=None): """ Return configuration """ res = {} - for fetchmail in self.browse(cursor, uid, ids): + for fetchmail in self.browse(cr, uid, ids, context=context): global_section_name = 'incoming_mail' key_types = {'port': int, @@ -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)) @@ -135,9 +140,9 @@ class FetchmailServer(osv.osv): res[fetchmail.id] = config_vals return res - def _type_search(self, cr, uid, obj, name, args, context={}): + def _type_search(self, cr, uid, obj, name, args, context=None): result_ids = [] - # read all incomming servers values + # read all incoming servers values all_ids = self.search(cr, uid, [], context=context) results = self.read(cr, uid, all_ids, ['id', 'type'], context=context) args = args[:] @@ -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 @@ -161,65 +168,65 @@ class FetchmailServer(osv.osv): _columns = { 'server': fields.function( _get_incom_conf, - method=True, string='Server', type="char", multi='income_mail_config', - size=256, help="Hostname or IP of the mail server"), + states={'draft': [('readonly', True)]}, + help="Hostname or IP of the mail server"), 'port': fields.function( _get_incom_conf, - method=True, string='Port', type="integer", - multi='income_mail_config', - help="Hostname or IP of the mail server"), + states={'draft': [('readonly', True)]}, + multi='income_mail_config'), 'type': fields.function( _get_incom_conf, - method=True, string='Type', - type="char", + type="selection", + selection=[('pop', 'POP Server'), + ('imap', 'IMAP Server'), + ('local', 'Local Server'), + ], multi='income_mail_config', fnct_search=_type_search, - size=64, + states={'draft': [('readonly', True)]}, help="pop, imap, local"), 'is_ssl': fields.function( _get_incom_conf, - method=True, string='Is SSL', type="boolean", multi='income_mail_config', + states={'draft': [('readonly', True)]}, help='Connections are encrypted with SSL/TLS through' ' a dedicated port (default: IMAPS=993, POP3S=995)'), 'attach': fields.function( _get_incom_conf, - method=True, string='Keep Attachments', type="boolean", multi='income_mail_config', + states={'draft': [('readonly', True)]}, help="Whether attachments should be downloaded. " "If not enabled, incoming emails will be stripped of any " "attachments before being processed"), 'original': fields.function( _get_incom_conf, - method=True, string='Keep Original', type="boolean", multi='income_mail_config', + states={'draft': [('readonly', True)]}, help="Whether a full original copy of each email should be kept " "for reference and attached to each processed message. This " "will usually double the size of your message database."), 'user': fields.function( _get_incom_conf, - method=True, string='Username', type="char", - multi='income_mail_config', - size=64), + states={'draft': [('readonly', True)]}, + multi='income_mail_config'), 'password': fields.function( _get_incom_conf, - method=True, string='password', type="char", - multi='income_mail_config', - size=64)} -FetchmailServer() + states={'draft': [('readonly', True)]}, + multi='income_mail_config') + } diff --git a/__unported__/mail_environment/i18n/mail_environment.pot b/mail_environment/i18n/mail_environment.pot similarity index 100% rename from __unported__/mail_environment/i18n/mail_environment.pot rename to mail_environment/i18n/mail_environment.pot diff --git a/mail_environment/mail_view.xml b/mail_environment/mail_view.xml new file mode 100644 index 000000000..505b95278 --- /dev/null +++ b/mail_environment/mail_view.xml @@ -0,0 +1,24 @@ + + + + + inherit_fetchmail_for_env_support + fetchmail.server + + + + + + + + + + + + + + + + + +