From a6fdc988ec58903c5db9c6f23eca795ed6d1cb54 Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Fri, 7 Mar 2014 18:54:49 +0530 Subject: [PATCH 01/45] [ADD] : module website_mail_group bzr revid: aja@tinyerp.com-20140307132449-zy216yv5kmt3o0zw --- addons/mail/mail_message.py | 2 +- addons/mail/mail_thread.py | 3 +- addons/website_mail_group/__init__.py | 2 + addons/website_mail_group/__openerp__.py | 23 ++++ .../controllers/__init__.py | 3 + addons/website_mail_group/controllers/main.py | 104 +++++++++++++++ .../data/website_mail_group_data.xml | 4 + .../data/website_mail_group_demo.xml | 5 + addons/website_mail_group/models/__init__.py | 1 + .../website_mail_group/models/mail_group.py | 25 ++++ .../security/ir.model.access.csv | 0 .../static/src/css/website_mail_group.css | 0 .../views/website_mail_group.xml | 120 ++++++++++++++++++ .../views/website_mail_group_backend.xml | 5 + 14 files changed, 295 insertions(+), 2 deletions(-) create mode 100644 addons/website_mail_group/__init__.py create mode 100644 addons/website_mail_group/__openerp__.py create mode 100644 addons/website_mail_group/controllers/__init__.py create mode 100644 addons/website_mail_group/controllers/main.py create mode 100644 addons/website_mail_group/data/website_mail_group_data.xml create mode 100644 addons/website_mail_group/data/website_mail_group_demo.xml create mode 100644 addons/website_mail_group/models/__init__.py create mode 100644 addons/website_mail_group/models/mail_group.py create mode 100644 addons/website_mail_group/security/ir.model.access.csv create mode 100644 addons/website_mail_group/static/src/css/website_mail_group.css create mode 100644 addons/website_mail_group/views/website_mail_group.xml create mode 100644 addons/website_mail_group/views/website_mail_group_backend.xml diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 40a51df91d2..2b10ce46b85 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -181,6 +181,7 @@ class mail_message(osv.Model): 'subject': fields.char('Subject'), 'date': fields.datetime('Date'), 'message_id': fields.char('Message-Id', help='Message unique identifier', select=1, readonly=1), + 'parent_message': fields.char('Immediate Parent', select=1, readonly=1), 'body': fields.html('Contents', help='Automatically sanitized HTML contents'), 'to_read': fields.function(_get_to_read, fnct_search=_search_to_read, type='boolean', string='To read', @@ -834,7 +835,6 @@ class mail_message(osv.Model): if context is None: context = {} default_starred = context.pop('default_starred', False) - if 'email_from' not in values: # needed to compute reply_to values['email_from'] = self._get_default_from(cr, uid, context=context) if 'message_id' not in values: diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index c72ef8a77cb..a306d1160e7 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -1259,6 +1259,7 @@ class mail_thread(osv.AbstractModel): parent_ids = self.pool.get('mail.message').search(cr, uid, [('message_id', '=', decode(message['In-Reply-To']))]) if parent_ids: msg_dict['parent_id'] = parent_ids[0] + msg_dict['parent_message'] = message.get('In-Reply-To') if message.get('References') and 'parent_id' not in msg_dict: parent_ids = self.pool.get('mail.message').search(cr, uid, [('message_id', 'in', @@ -1866,4 +1867,4 @@ class mail_thread(osv.AbstractModel): message_obj.write(cr, uid, msg_ids_comment, {"res_id" : new_res_id, "model" : new_model}, context=context) message_obj.write(cr, uid, msg_ids_not_comment, {"res_id" : new_res_id, "model" : new_model, "subtype_id" : None}, context=context) - return True \ No newline at end of file + return True diff --git a/addons/website_mail_group/__init__.py b/addons/website_mail_group/__init__.py new file mode 100644 index 00000000000..9f86759e32b --- /dev/null +++ b/addons/website_mail_group/__init__.py @@ -0,0 +1,2 @@ +import controllers +import models diff --git a/addons/website_mail_group/__openerp__.py b/addons/website_mail_group/__openerp__.py new file mode 100644 index 00000000000..f90d654036f --- /dev/null +++ b/addons/website_mail_group/__openerp__.py @@ -0,0 +1,23 @@ +{ + 'name': 'Mailing List Archive', + 'category': 'Website', + 'summary': '', + 'version': '1.0', + 'description': """ +OpenERP Mail Group : Mailing List Archive +================== + + """, + 'author': 'OpenERP SA', + 'depends': ['website','mail'], + 'data': [ + 'views/website_mail_group.xml', + 'views/website_mail_group_backend.xml', + 'data/website_mail_group_data.xml', + ], + 'demo': [ + 'data/website_mail_group_demo.xml' + ], + 'qweb': ['static/src/xml/*.xml'], + 'installable': True, +} diff --git a/addons/website_mail_group/controllers/__init__.py b/addons/website_mail_group/controllers/__init__.py new file mode 100644 index 00000000000..e11f9ba81bb --- /dev/null +++ b/addons/website_mail_group/controllers/__init__.py @@ -0,0 +1,3 @@ +import main + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py new file mode 100644 index 00000000000..8f36503aa32 --- /dev/null +++ b/addons/website_mail_group/controllers/main.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2013-Today OpenERP SA (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp import SUPERUSER_ID +from openerp.addons.web import http +from openerp.addons.web.http import request +import werkzeug +import datetime +import time + +from openerp.tools.translate import _ + +class MailGroup(http.Controller): + _thread_per_page = 10 + + @http.route([ + "/groups", + ], type='http', auth="public", website=True) + def view(self, **post): + cr, uid, context = request.cr , request.uid, request.context + group_obj = request.registry.get('mail.group') + user_obj = request.registry.get('res.users') + group_ids = group_obj.search(cr, SUPERUSER_ID, [], context=context) + values = { + 'groups': group_obj.browse(cr, uid, group_ids, context), + } + return request.website.render('website_mail_group.mail_groups', values) + + @http.route([ + "/groups/follow/", + ], type='http', auth="public", website=True) + def follow(self, group_id, **post): + cr, uid, context = request.cr , request.uid, request.context + group_obj = request.registry.get('mail.group') + group_obj.message_subscribe_users(cr, uid, [group_id], context=context) + return werkzeug.utils.redirect('/groups') + + @http.route([ + "/groups/unfollow/", + ], type='http', auth="public", website=True) + def unfollow(self, group_id, **post): + cr, uid, context = request.cr , request.uid, request.context + group_obj = request.registry.get('mail.group') + group_obj.message_unsubscribe_users(cr, uid, [group_id], context=context) + return werkzeug.utils.redirect('/groups') + + @http.route([ + "/groups//", + "/groups//page//" + ], type='http', auth="public", website=True) + def thread(self, group_id, page=1, **post): + cr, uid, context = request.cr , request.uid, request.context + group_obj = request.registry.get('mail.group') + thread_obj = request.registry.get('mail.message') + thread_ids = thread_obj.search(cr, uid, [('type','=','email'),('model','=','mail.group'),('res_id','=',group_id),('parent_message','=',False)]) + group_ids = group_obj.search(cr, SUPERUSER_ID, []) + pager = request.website.pager( + url='/groups/%s/' % group_id, + total=len(thread_ids), + page=page, + step=self._thread_per_page, + ) + pager_begin = (page - 1) * self._thread_per_page + pager_end = page * self._thread_per_page + thread_ids = thread_ids[pager_begin:pager_end] + values = { + 'groups': group_obj.browse(cr, uid, group_ids, context), + 'thread_list': thread_obj.browse(cr, uid, thread_ids, context), + 'active_group': group_obj.browse(cr, uid, group_id, context), + 'pager': pager, + } + return request.website.render('website_mail_group.group_thread_list', values) + + @http.route([ + "/groups/thread/", + ], type='http', auth="public", website=True) + def get_thread(self, message_id, **post): + cr, uid, context = request.cr , request.uid, request.context + group_obj = request.registry.get('mail.group') + thread_obj = request.registry.get('mail.message') + child_ids = thread_obj.search(cr, uid, [('parent_id','=',message_id)]) + values = { + 'main_thread' : thread_obj.browse(cr, uid, message_id, context), + 'child_thread' : thread_obj.browse(cr, uid, child_ids, context), + } + return request.website.render('website_mail_group.group_thread', values) diff --git a/addons/website_mail_group/data/website_mail_group_data.xml b/addons/website_mail_group/data/website_mail_group_data.xml new file mode 100644 index 00000000000..b020c6a30ae --- /dev/null +++ b/addons/website_mail_group/data/website_mail_group_data.xml @@ -0,0 +1,4 @@ + + + + diff --git a/addons/website_mail_group/data/website_mail_group_demo.xml b/addons/website_mail_group/data/website_mail_group_demo.xml new file mode 100644 index 00000000000..ebc084668b7 --- /dev/null +++ b/addons/website_mail_group/data/website_mail_group_demo.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/addons/website_mail_group/models/__init__.py b/addons/website_mail_group/models/__init__.py new file mode 100644 index 00000000000..ea8be51acde --- /dev/null +++ b/addons/website_mail_group/models/__init__.py @@ -0,0 +1 @@ +import mail_group diff --git a/addons/website_mail_group/models/mail_group.py b/addons/website_mail_group/models/mail_group.py new file mode 100644 index 00000000000..66a7481fb52 --- /dev/null +++ b/addons/website_mail_group/models/mail_group.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2013-Today OpenERP SA (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import osv, fields +import uuid +import time +import datetime diff --git a/addons/website_mail_group/security/ir.model.access.csv b/addons/website_mail_group/security/ir.model.access.csv new file mode 100644 index 00000000000..e69de29bb2d diff --git a/addons/website_mail_group/static/src/css/website_mail_group.css b/addons/website_mail_group/static/src/css/website_mail_group.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml new file mode 100644 index 00000000000..a3abfaf605a --- /dev/null +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -0,0 +1,120 @@ + + + + + + + + + + diff --git a/addons/website_mail_group/views/website_mail_group_backend.xml b/addons/website_mail_group/views/website_mail_group_backend.xml new file mode 100644 index 00000000000..cc8d30d080d --- /dev/null +++ b/addons/website_mail_group/views/website_mail_group_backend.xml @@ -0,0 +1,5 @@ + + + + + From 3f25397dfa037aac3e4c81d4a4b49594bf5e51c8 Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Mon, 10 Mar 2014 17:17:48 +0530 Subject: [PATCH 02/45] [IMP] : code bzr revid: aja@tinyerp.com-20140310114748-gnlktp3dngnccbl3 --- addons/website_mail_group/controllers/main.py | 63 ++++++++----------- .../static/src/js/website_mail_group.js | 26 ++++++++ .../views/website_mail_group.xml | 21 +++---- 3 files changed, 61 insertions(+), 49 deletions(-) create mode 100644 addons/website_mail_group/static/src/js/website_mail_group.js diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index 8f36503aa32..b57c8e22379 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -19,14 +19,9 @@ # ############################################################################## -from openerp import SUPERUSER_ID from openerp.addons.web import http from openerp.addons.web.http import request -import werkzeug -import datetime -import time -from openerp.tools.translate import _ class MailGroup(http.Controller): _thread_per_page = 10 @@ -35,45 +30,38 @@ class MailGroup(http.Controller): "/groups", ], type='http', auth="public", website=True) def view(self, **post): - cr, uid, context = request.cr , request.uid, request.context + cr, uid, context = request.cr, request.uid, request.context group_obj = request.registry.get('mail.group') - user_obj = request.registry.get('res.users') - group_ids = group_obj.search(cr, SUPERUSER_ID, [], context=context) + group_ids = group_obj.search(cr, uid, [], context=context) values = { 'groups': group_obj.browse(cr, uid, group_ids, context), } return request.website.render('website_mail_group.mail_groups', values) @http.route([ - "/groups/follow/", - ], type='http', auth="public", website=True) - def follow(self, group_id, **post): - cr, uid, context = request.cr , request.uid, request.context + "/groups/subscription", + ], type='json', auth="public", website=True) + def subscription(self, group_id=0, action=False ,**post): + cr, uid, context = request.cr, request.uid, request.context group_obj = request.registry.get('mail.group') - group_obj.message_subscribe_users(cr, uid, [group_id], context=context) - return werkzeug.utils.redirect('/groups') + if action: + group_obj.message_subscribe_users(cr, uid, [group_id], context=context) + else: + group_obj.message_unsubscribe_users(cr, uid, [group_id], context=context) + return [] @http.route([ - "/groups/unfollow/", + "/groups//", + "/groups//page//" ], type='http', auth="public", website=True) - def unfollow(self, group_id, **post): - cr, uid, context = request.cr , request.uid, request.context - group_obj = request.registry.get('mail.group') - group_obj.message_unsubscribe_users(cr, uid, [group_id], context=context) - return werkzeug.utils.redirect('/groups') - - @http.route([ - "/groups//", - "/groups//page//" - ], type='http', auth="public", website=True) - def thread(self, group_id, page=1, **post): - cr, uid, context = request.cr , request.uid, request.context + def thread(self, group, page=1, **post): + cr, uid, context = request.cr, request.uid, request.context group_obj = request.registry.get('mail.group') thread_obj = request.registry.get('mail.message') - thread_ids = thread_obj.search(cr, uid, [('type','=','email'),('model','=','mail.group'),('res_id','=',group_id),('parent_message','=',False)]) - group_ids = group_obj.search(cr, SUPERUSER_ID, []) + thread_ids = thread_obj.search(cr, uid, [('type','=','email'), ('model','=','mail.group'), ('res_id','=',group.id), ('parent_message','=',False)]) + group_ids = group_obj.search(cr, uid, []) pager = request.website.pager( - url='/groups/%s/' % group_id, + url='/groups/%s/' % group.id, total=len(thread_ids), page=page, step=self._thread_per_page, @@ -84,21 +72,20 @@ class MailGroup(http.Controller): values = { 'groups': group_obj.browse(cr, uid, group_ids, context), 'thread_list': thread_obj.browse(cr, uid, thread_ids, context), - 'active_group': group_obj.browse(cr, uid, group_id, context), + 'active_group': group, 'pager': pager, } return request.website.render('website_mail_group.group_thread_list', values) @http.route([ - "/groups/thread/", + "/groups//message/", ], type='http', auth="public", website=True) - def get_thread(self, message_id, **post): - cr, uid, context = request.cr , request.uid, request.context - group_obj = request.registry.get('mail.group') + def get_thread(self, group, message, **post): + cr, uid, context = request.cr, request.uid, request.context thread_obj = request.registry.get('mail.message') - child_ids = thread_obj.search(cr, uid, [('parent_id','=',message_id)]) + child_ids = thread_obj.search(cr, uid, [('parent_id','=',message.id)]) values = { - 'main_thread' : thread_obj.browse(cr, uid, message_id, context), - 'child_thread' : thread_obj.browse(cr, uid, child_ids, context), + 'main_thread': message, + 'child_thread': thread_obj.browse(cr, uid, child_ids, context), } return request.website.render('website_mail_group.group_thread', values) diff --git a/addons/website_mail_group/static/src/js/website_mail_group.js b/addons/website_mail_group/static/src/js/website_mail_group.js new file mode 100644 index 00000000000..3b856d12684 --- /dev/null +++ b/addons/website_mail_group/static/src/js/website_mail_group.js @@ -0,0 +1,26 @@ +$(document).ready(function () { + $('a.js_group').on('click', function (ev) { + ev.preventDefault(); + var $link = $(ev.currentTarget); + var href = $link.attr("href"); + var group_id = href.match(/subscription\/([0-9]+)/)[1]; + var action = href.match(/action=(.*)/)[1] == 'follow' ? true : false; + openerp.jsonRpc("/groups/subscription/", 'call', { + 'group_id': parseInt(group_id), + 'action' : action, + }) + .then(function (data) { + if (action){ + $('li#'+ group_id).toggleClass('hidden visible'); + $('.unfollow_' + group_id).toggleClass('visible hidden'); + $('.follow_' + group_id).toggleClass('hidden visible'); + } + else { + $('li#'+ group_id).toggleClass('visible hidden'); + $('.unfollow_' + group_id).toggleClass('hidden visible'); + $('.follow_' + group_id).toggleClass('visible hidden'); + } + }); + return false; + }); +}); diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index a3abfaf605a..a87365ad803 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -10,6 +10,9 @@ @@ -69,7 +68,7 @@ - +

by on

@@ -101,7 +100,7 @@ - +
@@ -111,7 +110,7 @@
-
+
From 22d1989d6ccb81908fbf7d13ba71abd853b9b20c Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Tue, 11 Mar 2014 14:26:26 +0530 Subject: [PATCH 03/45] [ADD] : demo data bzr revid: aja@tinyerp.com-20140311085626-phkz5012uvwagc94 --- addons/website_mail_group/controllers/main.py | 4 +- .../data/website_mail_group_demo.xml | 123 ++++++++++++++++++ .../views/website_mail_group.xml | 66 +++++----- 3 files changed, 156 insertions(+), 37 deletions(-) diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index b57c8e22379..996b5524ffd 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -58,7 +58,7 @@ class MailGroup(http.Controller): cr, uid, context = request.cr, request.uid, request.context group_obj = request.registry.get('mail.group') thread_obj = request.registry.get('mail.message') - thread_ids = thread_obj.search(cr, uid, [('type','=','email'), ('model','=','mail.group'), ('res_id','=',group.id), ('parent_message','=',False)]) + thread_ids = thread_obj.search(cr, uid, [('type','=','email'), ('model','=','mail.group'), ('res_id','=',group.id), ('parent_id','=',False)]) group_ids = group_obj.search(cr, uid, []) pager = request.website.pager( url='/groups/%s/' % group.id, @@ -83,7 +83,7 @@ class MailGroup(http.Controller): def get_thread(self, group, message, **post): cr, uid, context = request.cr, request.uid, request.context thread_obj = request.registry.get('mail.message') - child_ids = thread_obj.search(cr, uid, [('parent_id','=',message.id)]) + child_ids = thread_obj.search(cr, uid, [('parent_id','=',message.id)], order='date') values = { 'main_thread': message, 'child_thread': thread_obj.browse(cr, uid, child_ids, context), diff --git a/addons/website_mail_group/data/website_mail_group_demo.xml b/addons/website_mail_group/data/website_mail_group_demo.xml index ebc084668b7..366fa69ed6a 100644 --- a/addons/website_mail_group/data/website_mail_group_demo.xml +++ b/addons/website_mail_group/data/website_mail_group_demo.xml @@ -1,5 +1,128 @@ + + Community + Community team + + + + + + mail.group + + Discover OpenERP V8 + Dear community,

+

We are organizing a serie of events to showcase the new features of OpenERP v8. + The events are visible on http://openerp.com/events +

+

The America Tour:

+

3/11: New York:

+

3/13: Montreal: http://www.eventbrite.com/event/10577717237

+

3/18: Los Angeles: http://www.eventbrite.com/event/10577185647

+

3/20: San Francisco: http://www.eventbrite.com/event/10577185647

+

4/10: Chicago: http://www.eventbrite.com/event/10577414331

+

4/17: Miami: http://www.eventbrite.com/event/10577616937

+

The European Tour:

+

2/20: Gosselies - Belgium: http://www.eventbrite.com/e/presentation-of-the-website-builder-ecommerce-brussels-belgium-tickets-10313228143

+

3/10: Germany: http://www.eventbrite.com/e/exhibition-en-cebit-hannover-germany-registration-10615107071

+

3/18: Lisbon, Portugal: https://www.eventbrite.com/e/openerp-tour-discover-openerp-with-cms-ecommerce-lisbon-portugal-registration-10552736519

+

Please spread the news and lets meet there.

+

Thanks,

+ ]]>
+ email + + +
+ + mail.group + + Re: Discover OpenERP V8 + Hi,

+ +

is there any event scheduled for Africa in near future?

+ +

Regards

+ ]]>
+ email + + + +
+ + mail.group + + Re: Discover OpenERP V8 + Yes,

+

in Moroco. You can contact Yves-Pascal (ypm@xxxxxxxxxxx) for morinformation.

+ ]]>
+ email + + + +
+ + mail.group + + OpenERP Marketing + Dear community,

+

+ Over the past years, we did not invest a lot in marketing. We put most + our efforts in R&D and Sales departements (starting from 2010) and + services (started in 2012). +

+ Things are changing and we are now ready to invest a lot in marketing + activities. I just wrote a "very draft" internal document to discuss the + brand positioning of OpenERP: + http://pad.openerp.com/p/r.Zzg7LhlqI7elyigb +

+ I would like to have your point of view on these marketing thoughts for + OpenERP. +

+ Thanks, +

+ ]]>
+ email + + +
+ + mail.group + + Re: OpenERP Marketing + I just posted my feedback request about the OpenERP brand positioning on + HN, you can react there: + https://news.ycombinator.com/item?id=7243726 + ]]> + email + + + + + + mail.group + + Re: report_webkit future + Hello,

+

I don't think there can be only one positioning for OpenERP.

+

Depending on the customer in front of me, I will present OpenERP as :

+
    +
  1. an Apps-consuming platform (like a cell phone)
  2. +
  3. an ERP (in its traditional meaning)
  4. +
  5. a business apps development framework
  6. +
+

+ OpenERP answers a wide range of needs, so you need to differentiate + the positioning based on the 3 axis above. In each of those axis, + the competition is different and arguments toward OpenERP will be + different as well. +

+ ]]>
+ email + + + +
diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index a87365ad803..18c7d47d01a 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -19,21 +19,19 @@
- -
@@ -65,15 +63,13 @@
- - - - - + + +
- - -

by on

-
+ + +

by on

+
@@ -89,25 +85,25 @@
-
- -
-
-
-
-
- +
+
+ +
+
+
+
+
-
- +
+
-
- +
+
From 7198fed6f80838dafa7d25fff368e0de16a2c168 Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Tue, 11 Mar 2014 14:59:24 +0530 Subject: [PATCH 04/45] [IMP]: demo data bzr revid: aja@tinyerp.com-20140311092924-y0yauql0igx4aifr --- .../data/website_mail_group_demo.xml | 138 ++++++++++++++---- 1 file changed, 107 insertions(+), 31 deletions(-) diff --git a/addons/website_mail_group/data/website_mail_group_demo.xml b/addons/website_mail_group/data/website_mail_group_demo.xml index 366fa69ed6a..2744986dcdd 100644 --- a/addons/website_mail_group/data/website_mail_group_demo.xml +++ b/addons/website_mail_group/data/website_mail_group_demo.xml @@ -12,24 +12,74 @@ mail.group Discover OpenERP V8 - Dear community,

-

We are organizing a serie of events to showcase the new features of OpenERP v8. - The events are visible on http://openerp.com/events + +

+ Dear community, +

+ We are organizing a serie of events to showcase the new + features of OpenERP v8.The events are visible on + http://openerp.com/events +

+ The America Tour: +

+ 3/11: New York: + + http://www.eventbrite.com/event/10576455463 + +

+ 3/13: Montreal: + + http://www.eventbrite.com/event/10577717237 + +

+ 3/18: Los Angeles: + + http://www.eventbrite.com/event/10577185647 + +

+ 3/20: San Francisco: + + http://www.eventbrite.com/event/10577185647 + +

+ 4/10: Chicago: + + http://www.eventbrite.com/event/10577414331 + +

+ 4/17: Miami: + + http://www.eventbrite.com/event/10577616937 + +

+ The European Tour: +

+ 2/20: Gosselies - Belgium: + + http://www.eventbrite.com/e/inscription-avant-premiere-openerp-presentation-du-cms-ecommerce-gosselies-be-10408392783 + +

+ 2/21: Brussels - Belgium: + + http://www.eventbrite.com/e/presentation-of-the-website-builder-ecommerce-brussels-belgium-tickets-10313228143 + +

+ 3/10: Germany: + + http://www.eventbrite.com/e/exhibition-en-cebit-hannover-germany-registration-10615107071 + +

+ 3/18: Lisbon, Portugal: + + https://www.eventbrite.com/e/openerp-tour-discover-openerp-with-cms-ecommerce-lisbon-portugal-registration-10552736519 + +

+ Please spread the news and lets meet there. +

+ Thanks,

-

The America Tour:

-

3/11: New York:

-

3/13: Montreal: http://www.eventbrite.com/event/10577717237

-

3/18: Los Angeles: http://www.eventbrite.com/event/10577185647

-

3/20: San Francisco: http://www.eventbrite.com/event/10577185647

-

4/10: Chicago: http://www.eventbrite.com/event/10577414331

-

4/17: Miami: http://www.eventbrite.com/event/10577616937

-

The European Tour:

-

2/20: Gosselies - Belgium: http://www.eventbrite.com/e/presentation-of-the-website-builder-ecommerce-brussels-belgium-tickets-10313228143

-

3/10: Germany: http://www.eventbrite.com/e/exhibition-en-cebit-hannover-germany-registration-10615107071

-

3/18: Lisbon, Portugal: https://www.eventbrite.com/e/openerp-tour-discover-openerp-with-cms-ecommerce-lisbon-portugal-registration-10552736519

-

Please spread the news and lets meet there.

-

Thanks,

+ ]]>
email @@ -39,11 +89,16 @@ mail.group Re: Discover OpenERP V8 - Hi,

- -

is there any event scheduled for Africa in near future?

- -

Regards

+ +

+ Hi, +

+ is there any event scheduled for Africa in near future? +

+ Regards +

+ ]]>
email @@ -54,8 +109,11 @@ mail.group Re: Discover OpenERP V8 - Yes,

+ +

Yes,

in Moroco. You can contact Yves-Pascal (ypm@xxxxxxxxxxx) for morinformation.

+ ]]>
email @@ -66,7 +124,9 @@ mail.group OpenERP Marketing - Dear community,

+ +

Dear community,

Over the past years, we did not invest a lot in marketing. We put most our efforts in R&D and Sales departements (starting from 2010) and @@ -82,6 +142,7 @@

Thanks,

+ ]]>
email @@ -91,9 +152,17 @@ mail.group Re: OpenERP Marketing - I just posted my feedback request about the OpenERP brand positioning on - HN, you can react there: - https://news.ycombinator.com/item?id=7243726 + +

+ I just posted my feedback request + about the OpenERP brand positioning on + HN, you can react there: + + https://news.ycombinator.com/item?id=7243726 + +

+ ]]>
email @@ -103,10 +172,16 @@ mail.group - Re: report_webkit future - Hello,

-

I don't think there can be only one positioning for OpenERP.

-

Depending on the customer in front of me, I will present OpenERP as :

+ Re: OpenERP Marketing + +

+ Hello, +

+ I don't think there can be only one positioning for OpenERP. +

+ Depending on the customer in front of me, I will present OpenERP as : +

  1. an Apps-consuming platform (like a cell phone)
  2. an ERP (in its traditional meaning)
  3. @@ -118,6 +193,7 @@ the competition is different and arguments toward OpenERP will be different as well.

    + ]]> email From 79e55a06d629d0794fc5880323891c3b5be01fce Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Tue, 11 Mar 2014 16:13:17 +0530 Subject: [PATCH 05/45] [IMP] : Group follow/unfollow button not visible without logged in bzr revid: aja@tinyerp.com-20140311104317-ysrtonu691g7qqek --- addons/website_mail_group/__openerp__.py | 1 + addons/website_mail_group/controllers/main.py | 3 ++- .../security/website_mail_group.xml | 12 ++++++++++++ .../website_mail_group/views/website_mail_group.xml | 6 +++--- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 addons/website_mail_group/security/website_mail_group.xml diff --git a/addons/website_mail_group/__openerp__.py b/addons/website_mail_group/__openerp__.py index f90d654036f..5681dc31fd3 100644 --- a/addons/website_mail_group/__openerp__.py +++ b/addons/website_mail_group/__openerp__.py @@ -14,6 +14,7 @@ OpenERP Mail Group : Mailing List Archive 'views/website_mail_group.xml', 'views/website_mail_group_backend.xml', 'data/website_mail_group_data.xml', + 'security/website_mail_group.xml', ], 'demo': [ 'data/website_mail_group_demo.xml' diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index 996b5524ffd..01ec8633d55 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -32,6 +32,7 @@ class MailGroup(http.Controller): def view(self, **post): cr, uid, context = request.cr, request.uid, request.context group_obj = request.registry.get('mail.group') + group_ids = group_obj.search(cr, uid, [], context=context) values = { 'groups': group_obj.browse(cr, uid, group_ids, context), @@ -39,7 +40,7 @@ class MailGroup(http.Controller): return request.website.render('website_mail_group.mail_groups', values) @http.route([ - "/groups/subscription", + "/groups/subscription/", ], type='json', auth="public", website=True) def subscription(self, group_id=0, action=False ,**post): cr, uid, context = request.cr, request.uid, request.context diff --git a/addons/website_mail_group/security/website_mail_group.xml b/addons/website_mail_group/security/website_mail_group.xml new file mode 100644 index 00000000000..79d4390f6f9 --- /dev/null +++ b/addons/website_mail_group/security/website_mail_group.xml @@ -0,0 +1,12 @@ + + + + + Mail.group: access only public and joined groups + + ['|', '|', ('public', '=', 'public'), ('message_follower_ids', 'in', [user.partner_id.id]), '&', ('public','=','groups'), ('group_public_id','in', [g.id for g in user.groups_id])] + + + + + diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index 18c7d47d01a..e6963200290 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -13,7 +13,7 @@ -
    +
    @@ -28,8 +28,8 @@

    - Join Group - UnFollow + Join Group + UnFollow
    From 633ceff7fc812a5fb9d18671c893ff91ffccc665 Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Thu, 13 Mar 2014 14:55:05 +0530 Subject: [PATCH 06/45] [IMP] : join group button is visible to public user if public user will click on join group will ask to login [IMP] : button color [ADD] : 'Mailing List' menu in footer bzr revid: aja@tinyerp.com-20140313092505-yr2uwmxafudtdju9 --- addons/website_mail_group/controllers/main.py | 3 +++ .../static/src/js/website_mail_group.js | 4 +++- .../views/website_mail_group.xml | 15 ++++++++++----- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index e4387ba547b..dc0acce7644 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -45,6 +45,9 @@ class MailGroup(http.Controller): def subscription(self, group_id=0, action=False ,**post): cr, uid, context = request.cr, request.uid, request.context group_obj = request.registry.get('mail.group') + public_uid = request.registry['website'].get_public_user(cr , uid, context) + if uid == public_uid: + return ['is_public'] if action: group_obj.message_subscribe_users(cr, uid, [group_id], context=context) else: diff --git a/addons/website_mail_group/static/src/js/website_mail_group.js b/addons/website_mail_group/static/src/js/website_mail_group.js index 3b856d12684..651ed7fa6c3 100644 --- a/addons/website_mail_group/static/src/js/website_mail_group.js +++ b/addons/website_mail_group/static/src/js/website_mail_group.js @@ -4,12 +4,14 @@ $(document).ready(function () { var $link = $(ev.currentTarget); var href = $link.attr("href"); var group_id = href.match(/subscription\/([0-9]+)/)[1]; - var action = href.match(/action=(.*)/)[1] == 'follow' ? true : false; + var action = href.match(/action=(.*)/)[1] == 'subscribe' ? true : false; openerp.jsonRpc("/groups/subscription/", 'call', { 'group_id': parseInt(group_id), 'action' : action, }) .then(function (data) { + if(data[0]) + return window.location ='/web/login?redirect=/groups/'; if (action){ $('li#'+ group_id).toggleClass('hidden visible'); $('.unfollow_' + group_id).toggleClass('visible hidden'); diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index 6c6b23416ed..5000ca85a1d 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -1,6 +1,11 @@ + -