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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+