summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParamjit Singh Sahota <psa@tinyerp.com>2013-03-14 15:59:49 +0530
committerParamjit Singh Sahota <psa@tinyerp.com>2013-03-14 15:59:49 +0530
commit0b62a6858f52a6d2e3edfaabdb64a71d2e0686fa (patch)
tree9f59a04bebbd1bf30aa10ad92ebd8c8ac123c0d4
parentb1ae53e40e84fcc74bb5d60eb10a7ac2d03482da (diff)
[IMP] 1) Added code for opening the dialog box of edit followers,
2) Added an image in the mail.message.subtype template which is visible when the Technical Features menu is selected true . 3) On clicking on the edit pencil which is with the followers name gives the subtypes of the specific followers on which the user had clicked rather than the current form. bzr revid: psa@tinyerp.com-20130314102949-4v9l6xpz5u1jeq10
-rw-r--r--addons/mail/mail_message_subtype.py1
-rw-r--r--addons/mail/mail_message_subtype.xml15
-rw-r--r--addons/mail/mail_thread.py47
-rw-r--r--addons/mail/static/src/js/mail_followers.js59
-rw-r--r--addons/mail/static/src/xml/mail_followers.xml3
5 files changed, 105 insertions, 20 deletions
diff --git a/addons/mail/mail_message_subtype.py b/addons/mail/mail_message_subtype.py
index bef6e427c3b..253ec600c6c 100644
--- a/addons/mail/mail_message_subtype.py
+++ b/addons/mail/mail_message_subtype.py
@@ -22,7 +22,6 @@
from openerp.osv import osv
from openerp.osv import fields
-
class mail_message_subtype(osv.osv):
""" Class holding subtype definition for messages. Subtypes allow to tune
the follower subscription, allowing only some subtypes to be pushed
diff --git a/addons/mail/mail_message_subtype.xml b/addons/mail/mail_message_subtype.xml
index 91317003e78..a79f5815bd1 100644
--- a/addons/mail/mail_message_subtype.xml
+++ b/addons/mail/mail_message_subtype.xml
@@ -5,6 +5,7 @@
<record model="ir.ui.view" id="view_message_subtype_tree">
<field name="name">mail.message.subtype.tree</field>
<field name="model">mail.message.subtype</field>
+ <field name="priority">10</field>
<field name="arch" type="xml">
<tree string="Subtype">
<field name="name"/>
@@ -33,25 +34,11 @@
</field>
</record>
-
- <record model="ir.ui.view" id="view_edit_message_subtype_tree">
- <field name="name">edit.message.subtype.tree</field>
- <field name="model">mail.message.subtype</field>
- <field name="priority">10</field>
- <field name="arch" type="xml">
- <tree string="Edit Subtype" editable="top">
- <field name="name"/>
- </tree>
- </field>
- </record>
-
-
<record model="ir.actions.act_window" id="action_view_message_subtype">
<field name="name">Subtypes</field>
<field name="res_model">mail.message.subtype</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
- <field name="view_id" ref="view_message_subtype_tree"/>
</record>
<menuitem name="Subtypes" id="menu_message_subtype" parent="base.menu_email" action="action_view_message_subtype"/>
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index 64b1410508d..2cec1557a55 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -138,9 +138,56 @@ class mail_thread(osv.AbstractModel):
for subtype in fol.subtype_ids:
thread_subtype_dict[subtype.name]['followed'] = True
res[fol.res_id]['message_subtype_data'] = thread_subtype_dict
+ return res
+
+ def edit_followers_subtype(self, cr, uid, ids, partner_id, context=None):
+ print "cr, uid, ids, partner_id, co",cr, uid, ids, partner_id
+ res = dict((id, dict(message_subtype_data='')) for id in ids)
+ subtype_obj = self.pool.get('mail.message.subtype')
+ subtype_ids = subtype_obj.search(cr, uid, ['|', ('res_model', '=', self._name), ('res_model', '=', False)], context=context)
+ subtype_dict = dict((subtype.name, dict(default=subtype.default, followed=False, id=subtype.id)) for subtype in subtype_obj.browse(cr, uid, subtype_ids, context=context))
+ for id in ids:
+ res[id]['message_subtype_data'] = subtype_dict.copy()
+ fol_obj = self.pool.get('mail.followers')
+ fol_ids = fol_obj.search(cr, uid, [
+ ('partner_id', '=', partner_id),
+ ('res_id', 'in', ids),
+ ('res_model', '=', self._name),
+ ], context=context)
+ print "\n\n fol _ids>>>>>>>>>>", fol_ids
+ for fol in fol_obj.browse(cr, uid, fol_ids, context=context):
+ thread_subtype_dict = res[fol.res_id]['message_subtype_data']
+ for subtype in fol.subtype_ids:
+ thread_subtype_dict[subtype.name]['followed'] = True
+ res[fol.res_id]['message_subtype_data'] = thread_subtype_dict
+ print "\n<<<<res partner>>>>",res
return res
+ def apply_subtype(self, cr, uid, ids, partner_id, context=None):
+ print "\n\n uid, ids, subtype_id,", uid, ids, partner_id
+ res=[]
+ fol_obj = self.pool.get('mail.followers')
+ fol_ids = fol_obj.search(cr, uid, [
+ ('partner_id', '=', partner_id),
+ ('res_id', 'in', ids),
+ ('res_model', '=', self._name),
+ ], context=context)
+ print "\n\n fol _ids>>>>>>>>>>", fol_ids
+ for fol in fol_obj.browse(cr, uid, fol_ids, context=context):
+ print "\fol.subtype::::>:>:>:>:>", fol.subtype_ids
+ for subtype in fol.subtype_ids:
+ res.append(subtype.id)
+ print "\nres::::>:>:>:>:>", res
+ if partner_id==True:
+ res.append(ids[0])
+ else:
+ res.remove(ids[0])
+ fol_obj.write(cr, uid, fol_ids, {'subtype_ids': [(6,0,res)]}, context=context)
+ print "\nsubtype_id......>>>", partner_id, res
+ return partner_id
+
+
def _search_message_unread(self, cr, uid, obj=None, name=None, domain=None, context=None):
return [('message_ids.to_read', '=', True)]
diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js
index 5c6d3bc3347..031aeddb7d7 100644
--- a/addons/mail/static/src/js/mail_followers.js
+++ b/addons/mail/static/src/js/mail_followers.js
@@ -80,22 +80,72 @@ openerp_mail_followers = function(session, mail) {
this.$el.on('click', '.oe_show_more', self.on_show_more_followers)
},
- on_edit_subtype: function() {
+ on_edit_subtype: function(event) {
var self = this;
+ var records = [];
+ var partner_id = $(event.target).data('id');
+ var id = this.view.datarecord.id;
+ var res_model = this.view.dataset.model;
+ console.log('thissssssssssssssss>>', this, id, partner_id);
+ var $dialog = session.web.dialog($('<div>'), {
+ modal: true,
+ title: partner_id,
+ buttons: [
+ {text: _t("Apply"), click: function() {
+ // self.apply_subtype(id, partner_id);
+ $(this).dialog("close");
+ }
+ },
+ {text: _t("Cancel"), click: function() { $(this).dialog("close"); }}
+ ],
+ });
+ this.ds_model.call('edit_followers_subtype', [[id], [partner_id], new session.web.CompoundContext(this.build_context(), {})])
+ .then(function (data) {
+ // console.log('then>>>>>', data, id, partner_id);
+ if (data[id]) {
+ records = data[id].message_subtype_data;
+ // console.log('records........', records);
+ }
+ _(records).each(function (record, record_name) {
+ record.name = record_name;
+ record.followed = record.followed || undefined;
+ console.log('record??????????????', record);
+ $(session.web.qweb.render("mail.followers.subtype", {'record': record})).appendTo($dialog);
+ });
+ });
+
+ /* var partner_id = $(event.target).data('id');
+ var context = new session.web.CompoundContext(this.build_context(), {});
+
var action = {
type: 'ir.actions.act_window',
- res_model: 'mail.message.subtype',
+ res_model: 'mail.message.subtype', //'subtype.edit.wizard',
domain: [['res_model','=', self.view.model]],
view_mode: 'list',
view_type: 'list',
views: [[false, 'list']],
target: 'new',
+ context: {
+ 'res_model': this.view.dataset.model,
+ 'res_id': this.view.datarecord.id,
+ 'partner_id': partner_id,
+ },
}
+
this.do_action(action, {
on_close: function() {
self.read_value();
},
- });
+ });*/
+
+ },
+
+ apply_subtype: function(id, partner_id) {
+ console.log('id>>>partner_id>>> ', id, partner_id);
+ this.ds_model.call('apply_subtype', [[id], [partner_id], new session.web.CompoundContext(this.build_context(), {})])
+ .then(function (data) {
+ console.log('dataaaaaaaaaaaaa', data);
+ });
},
on_invite_follower: function (event) {
@@ -154,7 +204,7 @@ openerp_mail_followers = function(session, mail) {
.then(this.proxy('check_group_tech_feature'));
},
- check_group_tech_feature: function(){
+ check_group_tech_feature: function() {
var self = this;
var edit_subtypes = new session.web.Model("res.groups");
edit_subtypes.query(["name","users"])
@@ -276,6 +326,7 @@ openerp_mail_followers = function(session, mail) {
.then(this.proxy('read_value'));
_.each(this.$('.oe_subtype_list input'), function (record) {
+ console.log('do follow>', record);
$(record).attr('checked', 'checked');
});
},
diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml
index 18404c4ec05..7721b1beb22 100644
--- a/addons/mail/static/src/xml/mail_followers.xml
+++ b/addons/mail/static/src/xml/mail_followers.xml
@@ -32,7 +32,8 @@
<div t-name="mail.followers.partner" class='oe_partner'>
<img class="oe_mail_thumbnail oe_mail_frame" t-attf-src="{record.avatar_url}"/>
<a t-attf-href="#model=res.partner&amp;id=#{record.id}"><t t-raw="record.name"/></a>
- <img t-if="widget.check_access" class="oe_edit_subtype" t-att-src='_s + "/mail/static/src/img/icon-edit.gif"' title="Edit Subtype" t-att-data-id="record.id"/>
+ <!--t t-js="ab">console.log(':::::::::::;', ab);</t-->
+ <img class="oe_edit_subtype" t-att-src='_s + "/mail/static/src/img/icon-edit.gif"' title="Edit Subtype" t-att-data-id="record.id"/>
<span t-if="widget.view_is_editable" class="oe_remove_follower oe_e" title="Remove this follower" t-att-data-id="record.id">X</span>
</div>