ajay javiya (OpenERP) has proposed merging 
lp:~openerp-commiter/openobject-addons/trunk-mail-alias-jam-project-aja into 
lp:~openerp-dev/openobject-addons/trunk-mail-alias-jam.

Requested reviews:
  Jigar Amin  (OpenERP) (jam-openerp)

For more details, see:
https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-mail-alias-jam-project-aja/+merge/112073

Hello 
Implement mail.alias feature for project module that generate new default alias 
when new project is create.
Thank You
-- 
https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-mail-alias-jam-project-aja/+merge/112073
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-mail-alias-jam.
=== modified file 'project/project.py'
--- project/project.py	2012-06-05 10:20:15 +0000
+++ project/project.py	2012-06-26 11:20:38 +0000
@@ -55,7 +55,7 @@
 class project(osv.osv):
     _name = "project.project"
     _description = "Project"
-    _inherits = {'account.analytic.account': "analytic_account_id"}
+    _inherits = {'account.analytic.account': "analytic_account_id","mail.alias":"alias_id"}
     _inherit = ['ir.needaction_mixin', 'mail.thread']
 
     def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
@@ -164,6 +164,8 @@
         for task in self.pool.get('project.task').browse(cr, uid, task_ids, context):
             res[task.project_id.id] += 1
         return res
+    def _get_alias_model(self, cr, uid, context=None):
+        return [('model_project_task', "Tasks")]
 
     _columns = {
         'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250),
@@ -205,8 +207,9 @@
         'task_count': fields.function(_task_count, type='integer', string="Open Tasks"),
         'color': fields.integer('Color Index'),
         'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'),
+        'alias_id': fields.many2one('mail.alias', 'Mail Alias'),
+        'alias_model': fields.selection(_get_alias_model, "Alias Model",select="1"),
      }
-    
     def dummy(self, cr, uid, ids, context):
         return True
        
@@ -221,6 +224,7 @@
         'sequence': 10,
         'type_ids': _get_type_common,
         'use_tasks': True,
+        'alias_model':'model_project_task',
     }
 
     # TODO: Why not using a SQL contraints ?
@@ -482,9 +486,17 @@
         return self.pool.get('res.users').read(cr, uid, sub_ids, context=context)
 
     def create(self, cr, uid, vals, context=None):
-        obj_id = super(project, self).create(cr, uid, vals, context=context)
-        self.create_send_note(cr, uid, [obj_id], context=context)
-        return obj_id
+        model_pool = self.pool.get('ir.model.data')
+        alias_pool = self.pool.get('mail.alias')
+        model, res_id = model_pool.get_object_reference( cr, uid, "project", vals.get('alias_model'))
+        vals.update({'alias_name':"project",
+                     'alias_model_id': res_id})
+        alias_pool.create_unique_alias(cr, uid, vals, context=context)
+        res = super( project, self).create(cr, uid, vals, context)
+        record = self.read(cr, uid, res, context)
+        alias_pool.write(cr, uid, [record['alias_id']], {"alias_force_thread_id":record['id'],'alias_defaults':res}, context)
+        self.create_send_note(cr, uid, [res], context=context)
+        return res
 
     def create_send_note(self, cr, uid, ids, context=None):
         return self.message_append_note(cr, uid, ids, body=_("Project has been <b>created</b>."), context=context)
@@ -504,8 +516,7 @@
     def set_close_send_note(self, cr, uid, ids, context=None):
         message = _("Project has been <b>closed</b>.")
         return self.message_append_note(cr, uid, ids, body=message, context=context)
-
-
+            
 class task(base_stage, osv.osv):
     _name = "project.task"
     _description = "Task"

=== modified file 'project/project_view.xml'
--- project/project_view.xml	2012-06-20 15:16:25 +0000
+++ project/project_view.xml	2012-06-26 11:20:38 +0000
@@ -46,6 +46,9 @@
                             <field name="date_start" string="Start Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
                             <field name="date" string="End Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
                             <field name="progress_rate" widget="progressbar"/>
+                            
+                             <field name="alias_id"  required="0" />
+                            <field name="alias_model" />
                         </group>
                     </group>
                     <notebook colspan="4">
@@ -204,6 +207,7 @@
                     <field name="date"/>
                     <field name="color"/>
                     <field name="task_count"/>
+                    <field name="alias_id"/>
                     <templates>
                         <t t-name="kanban-box">
                             <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height oe_kanban_global_click">
@@ -228,7 +232,9 @@
                                         <div>Deadline</div>
                                         <div><field name="date"/></div>
                                     </div>
-
+                                    <div  t-if="record.alias_id.raw_value">
+                                        <a  t-attf-href="mailto:#{record.alias_id.raw_value}"><field name="alias_id"/></a>
+                                    </div>
                                     <div class="oe_kanban_project_fields oe_kanban_project_progress">
                                         <div>Progress</div>
                                         <div><t t-esc="Math.round(record.effective_hours.raw_value)"/> / <t t-esc="Math.round(record.planned_hours.raw_value)"/> <field name="company_uom_id"/></div>

=== modified file 'project_issue/project_issue.py'
--- project_issue/project_issue.py	2012-06-01 11:36:25 +0000
+++ project_issue/project_issue.py	2012-06-26 11:20:38 +0000
@@ -581,6 +581,9 @@
 class project(osv.osv):
     _inherit = "project.project"
 
+    def _get_alias_model(self, cr, uid, context=None):
+        return [('model_project_task', "Tasks"),("model_project_issue", "Issue")]
+        
     def _issue_count(self, cr, uid, ids, field_name, arg, context=None):
         res = dict.fromkeys(ids, 0)
         issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)])
@@ -593,6 +596,7 @@
         'reply_to' : fields.char('Reply-To Email Address', size=256),
         'use_issues' : fields.boolean('Use Issues', help="Check this field if this project manages issues"),
         'issue_count': fields.function(_issue_count, type='integer'),
+        'alias_model': fields.selection(_get_alias_model, "Alias Model"),
     }
 
     _defaults = {

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to