[REF] rb r2g

bzr revid: jke@openerp.com-20131124130241-s1hjdl08y5dcsnxs
This commit is contained in:
jke-openerp 2013-11-24 14:02:41 +01:00
parent 2b0a142481
commit cd4f71cf36
5 changed files with 41 additions and 7 deletions

View File

@ -288,6 +288,9 @@ class calendar_attendee(osv.osv):
'datas': str(ics_file).encode('base64')})]
vals['model'] = None #We don't want to have the mail in the tchatter while in queue!
vals['auto_delete'] = True #We don't need mail after it has been sended !
vals['recipient_ids'] = [(4,attendee.partner_id.id),] #We don't need mail after it has been sended !
print vals
if not attendee.partner_id.opt_out:
mail_id.append(mail_pool.create(cr, uid, vals, context=context))
@ -705,6 +708,7 @@ class calendar_alarm_manager(osv.osv):
vals = template_pool.generate_email(cr, uid, template_id, event.id, context=local_context)
vals['model'] = None #We don't want to have the mail in the tchatter while in queue!
vals['auto_delete'] = True #We don't need mail after it has been sended !
vals['recipient_ids'] = [(4,attendee.partner_id.id),] #We don't need mail after it has been sended !
if not attendee.partner_id.opt_out:
mail_id.append(mail_pool.create(cr, uid, vals, context=context))
@ -1001,6 +1005,11 @@ class crm_meeting(osv.Model):
def _tz_get(self, cr, uid, context=None):
return [(x.lower(), x) for x in pytz.all_timezones]
_track = {
'location': {
'calendar.subtype_invitation': lambda self, cr, uid, obj, ctx=None: True,
},
}
_columns = {
'create_date': fields.datetime('Creation Date', readonly=True),
'write_date': fields.datetime('Write Date', readonly=True),
@ -1024,7 +1033,7 @@ class crm_meeting(osv.Model):
'duration': fields.float('Duration', states={'done': [('readonly', True)]}),
'description': fields.text('Description', states={'done': [('readonly', True)]}),
'class': fields.selection([('public', 'Public'), ('private', 'Private'), ('confidential', 'Public for Employees')], 'Privacy', states={'done': [('readonly', True)]}),
'location': fields.char('Location', size=264, help="Location of Event", states={'done': [('readonly', True)]}),
'location': fields.char('Location', size=264, help="Location of Event", track_visibility='onchange', states={'done': [('readonly', True)]}),
'show_as': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Show Time as', states={'done': [('readonly', True)]}),
#'state': fields.selection([('tentative', 'Uncertain'),('cancelled', 'Cancelled'),('confirmed', 'Confirmed'),],'Status', readonly=True, track_visibility='onchange'),
@ -1179,6 +1188,9 @@ class crm_meeting(osv.Model):
mail_to = mail_to + " " + partner.email
new_attendees.append(att_id)
new_att_partner_ids.append(partner.id)
if current_user.email:
if self.pool.get('calendar.attendee')._send_mail(cr, uid, att_id, '', email_from = current_user.email, context=context):
self.message_post(cr, uid, event.id, body=_("An invitation email has been sent to attendee %s") % (partner.name,), context=context)
self.write(cr, uid, [event.id], {'attendee_ids': [(4, att) for att in new_attendees]},context=context)
@ -1192,7 +1204,12 @@ class crm_meeting(osv.Model):
if attendee_ids_to_remove:
self.pool.get("calendar.attendee").unlink(cr, uid, attendee_ids_to_remove, context)
return True
return {
'new_partner_ids' : new_att_partner_ids,
'new_attendee_ids' : new_attendees,
'all_partner_ids' : all_partner_ids,
'all_attendee_ids' : all_attendee_ids
}
def get_recurrent_ids(self, cr, uid, select, domain, limit=100, context=None):
"""Gives virtual event ids for recurring events based on value of Recurrence Rule
@ -1441,13 +1458,13 @@ class crm_meeting(osv.Model):
def do_sendmail(self, cr, uid, ids, context=None):
for event in self.browse(cr, uid, ids, context):
current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
if current_user.email:
if self.pool.get('calendar.attendee')._send_mail(cr, uid, [att.id for att in event.attendee_ids], '', email_from = current_user.email, context=context):
self.message_post(cr, uid, event.id, body=_("An invitation email has been sent to attendee(s)"), context=context)
return;
def get_attendee(self, cr, uid, meeting_id, context=None):
#Used for view in controller
@ -1589,8 +1606,17 @@ class crm_meeting(osv.Model):
end_date = self._get_recurrency_end_date(data, context=context)
super(crm_meeting, self).write(cr, uid, [data['id']], {'end_date': end_date}, context=context)
attendees_create = False
if values.get('partner_ids', False):
self.create_attendees(cr, uid, ids, context)
attendees_create = self.create_attendees(cr, uid, ids, context)
print values
if values.get('date', False):
print "Date has been changed !!!! --> SEND MAIL"
return res or True and False

View File

@ -2,6 +2,13 @@
<openerp>
<data noupdate="1">
<!-- Expense-related subtypes for messaging / Chatter -->
<record id="subtype_invitation" model="mail.message.subtype">
<field name="name">Invitation</field>
<field name="res_model">crm.meeting</field>
<field name="description">Invitation Sended</field>
</record>
<record model="res.request.link" id="request_link_event">
<field name="name">Event</field>
<field name="object">calendar.event</field>

View File

@ -46,7 +46,6 @@
context="{'force_email':True}"
on_change="onchange_partner_ids(partner_ids)"
class="oe_inline"/>
<button name="do_sendmail" type="object" string="Send mail(s)" attrs="{'invisible':[('partner_ids','=',False)]}" icon="terp-mail-message-new" class="oe_link"/>
</h2>
</div>
<notebook>
@ -131,9 +130,10 @@
</page>
<page string="Invitations" groups="base.group_no_one">
<button name="do_sendmail" type="object" string="Send mail" icon="terp-mail-message-new" class="oe_link"/>
<field name="attendee_ids" widget="one2many" >
<tree string="Invitation details" editable="top" create="false" delete="false">
<field name="partner_id" /> <!--on_change="onchange_partner_id(partner_id)"/>-->
<field name="partner_id" />
<field name="state" />
<field name="email" widget="email"/>

View File

@ -114,5 +114,5 @@
I invite a user for meeting.
-
!python {model: calendar.attendee}: |
meeting_id = self.create(cr, uid, {'user_id': ref('base.user_root'), 'email': 'user@meeting.com' })
meeting_id = self.create(cr, uid, {'partner_id': ref('base.partner_root'), 'email': 'user@meeting.com' })
self.do_accept(cr, uid, [meeting_id])

View File

@ -160,6 +160,7 @@ class mail_mail(osv.Model):
fragment['message_id'] = mail.mail_message_id.id
elif mail.model and mail.res_id:
fragment.update(model=mail.model, res_id=mail.res_id)
url = urljoin(base_url, "?%s#%s" % (urlencode(query), urlencode(fragment)))
return _("""<small>Access your messages and documents <a style='color:inherit' href="%s">in OpenERP</a></small>""") % url
else: