[MERGE] Bug fix lp:685977,lp:680704,lp:674241

bzr revid: sbh@tinyerp.com-20101207083747-trvx7xeucdjw5huk
This commit is contained in:
Sbh (OpenERP) 2010-12-07 14:07:47 +05:30
commit fd7173ceb6
5 changed files with 23 additions and 13 deletions

View File

@ -57,9 +57,8 @@ class email_server(osv.osv):
'user' : fields.char('User Name', size=256, required=True, readonly=True, states={'draft':[('readonly', False)]}), 'user' : fields.char('User Name', size=256, required=True, readonly=True, states={'draft':[('readonly', False)]}),
'password' : fields.char('Password', size=1024, invisible=True, required=True, readonly=True, states={'draft':[('readonly', False)]}), 'password' : fields.char('Password', size=1024, invisible=True, required=True, readonly=True, states={'draft':[('readonly', False)]}),
'note': fields.text('Description'), 'note': fields.text('Description'),
'action_id':fields.many2one('ir.actions.server', 'Reply Email', required=False, domain="[('state','=','email')]", 'action_id':fields.many2one('ir.actions.server', 'Email Server Action', required=False, domain="[('state','=','email')]", help="An Email Server Action. It will be run whenever an e-mail is fetched from server."),
help="An Email Server Action. It will be run whenever an e-mail is fetched from server."), 'object_id': fields.many2one('ir.model', "Model", required=True, help="OpenObject Model. Generates a record of this model.\nSelect Object with message_new attrbutes."),
'object_id': fields.many2one('ir.model', "Model", required=True, help="OpenObject Model. Generates a record of this model."),
'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly', False)]}, help="Priority between 0 to 10, select define the order of Processing"), 'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly', False)]}, help="Priority between 0 to 10, select define the order of Processing"),
'user_id':fields.many2one('res.users', 'User', required=False), 'user_id':fields.many2one('res.users', 'User', required=False),
'message_ids': fields.one2many('mailgate.message', 'server_id', 'Messages', readonly=True), 'message_ids': fields.one2many('mailgate.message', 'server_id', 'Messages', readonly=True),
@ -82,8 +81,19 @@ class email_server(osv.osv):
return False return False
return True return True
def check_model(self, cr, uid, ids, context = None):
if context is None:
context = {}
current_rec = self.read(cr, uid, ids, context)[0]
if current_rec:
model = self.pool.get(current_rec.get('object_id')[1])
if hasattr(model, 'message_new'):
return True
return False
_constraints = [ _constraints = [
(check_duplicate, 'Warning! Can\'t have duplicate server configuration!', ['user', 'password']) (check_duplicate, 'Warning! Can\'t have duplicate server configuration!', ['user', 'password']),
(check_model, 'Warning! Record for selected Model can not be created\nPlease choose valid Model', ['object_id'])
] ]
def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False): def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False):

View File

@ -1,8 +1,8 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_project_phase","project.phase","model_project_phase","project.group_project_user",1,1,1,0 "access_project_phase","project.phase","model_project_phase","project.group_project_user",1,1,1,0
"access_project_resource_allocation","project.resource.allocation","model_project_resource_allocation","project.group_project_user",1,0,0,0 "access_project_resource_allocation","project.resource.allocation","model_project_resource_allocation","project.group_project_user",1,0,0,0
"access_project_phase_manager","project.phase manager","model_project_phase","project.group_project_manager",1,0,0,0 "access_project_phase_manager","project.phase manager","model_project_phase","project.group_project_manager",1,1,1,1
"access_project_resource_allocation_manager","project.resource.allocation manager","model_project_resource_allocation","project.group_project_manager",1,0,0,0 "access_project_resource_allocation_manager","project.resource.allocation manager","model_project_resource_allocation","project.group_project_manager",1,1,1,1
"access_resource_resource_user","resource.resource user","resource.model_resource_resource","project.group_project_user",1,0,0,0 "access_resource_resource_user","resource.resource user","resource.model_resource_resource","project.group_project_user",1,0,0,0
"access_resource_calendar_leaves_user","resource.calendar.leaves user","resource.model_resource_calendar_leaves","project.group_project_user",1,1,1,1 "access_resource_calendar_leaves_user","resource.calendar.leaves user","resource.model_resource_calendar_leaves","project.group_project_user",1,1,1,1
"access_resource_resource_manager","resource.resource manager","resource.model_resource_resource","project.group_project_manager",1,1,1,1 "access_resource_resource_manager","resource.resource manager","resource.model_resource_resource","project.group_project_manager",1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_project_phase project.phase model_project_phase project.group_project_user 1 1 1 0
3 access_project_resource_allocation project.resource.allocation model_project_resource_allocation project.group_project_user 1 0 0 0
4 access_project_phase_manager project.phase manager model_project_phase project.group_project_manager 1 0 1 0 1 0 1
5 access_project_resource_allocation_manager project.resource.allocation manager model_project_resource_allocation project.group_project_manager 1 0 1 0 1 0 1
6 access_resource_resource_user resource.resource user resource.model_resource_resource project.group_project_user 1 0 0 0
7 access_resource_calendar_leaves_user resource.calendar.leaves user resource.model_resource_calendar_leaves project.group_project_user 1 1 1 1
8 access_resource_resource_manager resource.resource manager resource.model_resource_resource project.group_project_manager 1 1 1 1

View File

@ -29,11 +29,11 @@
"description": """ "description": """
This module is required for the thuderbird plug-in to work This module is required for the thuderbird plug-in to work
properly. properly.
The Plugin allows you archive email and its attachments to the selected
This allows you to select an object that youd like to add OpenERP objects. You can select a partner, a task, a project, an analytical
to your email and its attachments. You can select a partner, a task, account,or any other object and attach selected mail as .eml file in
a project, an analytical account, or any other object and attach selected attachment of selected record. You can create Documents for crm Lead,
mail as .eml file in attachment of selected record. HR Applicant and project issue from selected mails.
""", """,
"init_xml" : [], "init_xml" : [],

View File

@ -131,11 +131,11 @@ email_server_tools()
class thunderbird_partner(osv.osv_memory): class thunderbird_partner(osv.osv_memory):
_name = "thunderbird.partner" _name = "thunderbird.partner"
_description="Thunderbid mails" _description="Thunderbid Plugin Tools"
def create_contact(self,cr,user,vals): def create_contact(self,cr,user,vals):
dictcreate = dict(vals) dictcreate = dict(vals)
# Set False value if 'undefined'. Thunerbird set 'undefined' if user did not set any value. # Set False value if 'undefined' for record. Id User does not spicify the values, Thunerbird set 'undefined' by default for new contact.
for key in dictcreate: for key in dictcreate:
if dictcreate[key] == 'undefined': if dictcreate[key] == 'undefined':
dictcreate[key] = False dictcreate[key] = False