~openerp-community-leaders/poweremail/poweremail-github-mirror

« back to all changes in this revision

Viewing changes to template.py

  • Committer: Sharoon Thomas
  • Date: 2012-03-12 13:24:12 UTC
  • mfrom: (235.1.1)
  • Revision ID: git-v1:a8569d351a5c4fc4e2482aa3b0eec4149ee3df37
Merge pull request #19 from and3p/dev

[FIX] Bug when using OpenERP v6

Show diffs side-by-side

added added

removed removed

Lines of Context:
64
64
                         _("Django templates not installed")
65
65
                         )
66
66
 
 
67
import poweremail_engines
67
68
import tools
68
69
import report
69
70
import pooler
85
86
    return result
86
87
 
87
88
 
88
 
# This is an ugly hack to ensure that send_on_create and send_on_write are
89
 
# initialized when the server is started. Note there's a small time window
90
 
# between when the pool is available and when this function is called which
91
 
# may mean allow creating/writing objects without an e-mail being sent.
92
 
 
93
 
class report_xml(osv.osv):
94
 
 
95
 
    _inherit= 'ir.actions.report.xml'
96
 
 
 
89
class actions(osv.osv):
 
90
    _name = 'ir.actions.report.xml'
 
91
    _inherit = 'ir.actions.report.xml'
 
92
    
97
93
    def register_all(self, cr):
98
 
        res = super(report_xml, self).register_all(cr)
99
 
        pool = pooler.get_pool(cr.dbname)
100
 
        if not 'poweremail.templates' in pool.obj_list():
101
 
            return res
 
94
        value = super(actions, self).register_all(cr)
 
95
        if not 'poweremail.templates' in self.pool.obj_list():
 
96
            return value
 
97
 
102
98
        cr.execute("""
103
 
            SELECT
104
 
                pt.id,
105
 
                im.model,
106
 
                pt.send_on_create,
107
 
                pt.send_on_write
108
 
            FROM
109
 
                poweremail_templates pt,
110
 
                ir_model im
111
 
            WHERE
112
 
                pt.object_name = im.id
 
99
                    SELECT
 
100
                        pt.id,
 
101
                        im.model,
 
102
                        pt.send_on_create,
 
103
                        pt.send_on_write
 
104
                    FROM
 
105
                        poweremail_templates pt,
 
106
                        ir_model im
 
107
                    WHERE
 
108
                        pt.object_name = im.id
113
109
        """)
114
110
        for record in cr.fetchall():
115
111
            id = record[0]
116
112
            model = record[1]
117
113
            soc = record[2]
118
114
            sow = record[3]
119
 
            obj = pool.get(model)
 
115
            obj = self.pool.get(model)
120
116
            if not obj:
121
117
                continue
122
118
            if hasattr(obj, 'old_create'):
133
129
                obj.template_id = id
134
130
                obj.old_write = obj.write
135
131
                obj.write = types.MethodType(send_on_write, obj, osv.osv)
136
 
            
137
 
        return res
138
 
 
139
 
report_xml()
 
132
        return value
 
133
actions()
140
134
 
141
135
def get_value(cursor, user, recid, message=None, template=None, context=None):
142
136
    """
953
947
        if template.use_filter and template.filter:
954
948
            filtered_record_ids=[]
955
949
            for record in self.pool.get(template.object_name.model).browse(cursor, user, record_ids, context=context):
956
 
                if safe_eval(template.filter, {'o':record, 'self':self,
957
 
                                               'cr':cursor,
958
 
                                               'context':context,
959
 
                                               'uid': user}):
 
950
                if safe_eval(template.filter, {'o':record, 'self':self, 'cr':cursor, 'context':context}):
960
951
                    filtered_record_ids.append(record.id)
961
952
            record_ids=filtered_record_ids
962
953