ajay javiya (OpenERP) has proposed merging lp:~openerp-dev/openobject-addons/trunk-user-profile-tpa-add-coworker-aja into lp:~openerp-dev/openobject-addons/trunk-user-profile-tpa.
Requested reviews: Turkesh Patel (openERP) (turkesh-tinyerp) For more details, see: https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-user-profile-tpa-add-coworker-aja/+merge/146560 Hello, Add code for invite coworker from user profile. Thank You. -- https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-user-profile-tpa-add-coworker-aja/+merge/146560 Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-user-profile-tpa.
=== modified file 'user_profile/__init__.py' --- user_profile/__init__.py 2013-01-30 10:18:53 +0000 +++ user_profile/__init__.py 2013-02-05 06:10:28 +0000 @@ -19,5 +19,5 @@ # ############################################################################## - +import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: === modified file 'user_profile/__openerp__.py' --- user_profile/__openerp__.py 2013-01-30 10:18:53 +0000 +++ user_profile/__openerp__.py 2013-02-05 06:10:28 +0000 @@ -29,7 +29,8 @@ """, 'version': '1.0', - 'depends': ['mail'], + 'depends': ['mail','portal'], + 'data': ['wizard/add_coworker_view.xml'], 'css': ['static/src/css/*.css'], 'js': ['static/src/js/*.js'], 'qweb': ['static/src/xml/*.xml'], === modified file 'user_profile/static/src/js/user_profile.js' --- user_profile/static/src/js/user_profile.js 2013-01-31 11:31:53 +0000 +++ user_profile/static/src/js/user_profile.js 2013-02-05 06:10:28 +0000 @@ -19,6 +19,7 @@ bind_events: function() { var self = this; this.$('.oe_add_link').on('click', 'a', { uid: this.session.uid}, self.open_user_profile_view); + this.$el.on('click', '.oe_coworker', { uid: this.session.uid}, self.open_co_workers_view); this.$('.oe_suggest_groups').on('click','button',{ uid: this.session.uid,data:this}, self.join_group); this.$('.oe_suggest_peoples').on('click','button',{ uid: this.session.uid,data:this}, self.follow_peoples); }, @@ -89,6 +90,20 @@ }); return false; }, + open_co_workers_view: function(event){ + var self = this; + var action = { + name : 'Invite Coworkers', + type: 'ir.actions.act_window', + res_model: 'invite.coworkers.wizard', + view_mode: 'form', + view_type: 'form', + views: [[false, 'form']], + target: 'new', + }; + var action_manager = new session.web.ActionManager(this); + action_manager.do_action(action); + }, get_suggested_people: function() { var self = this; var show = 0; === modified file 'user_profile/static/src/xml/user_profile.xml' --- user_profile/static/src/xml/user_profile.xml 2013-01-31 08:52:48 +0000 +++ user_profile/static/src/xml/user_profile.xml 2013-02-05 06:10:28 +0000 @@ -7,6 +7,9 @@ <p class="oe_user_display">Complete Your Profile</p> <div class="oe_profile_complete"/> <ul class="oe_add_link"/> + <div class="oe_add_coworkers"> + <a class="oe_coworker">Add CoWorkers</a> + </div> </div> <div class="oe_user_profile_group"> <p class="oe_user_display">Suggested Groups</p> === added directory 'user_profile/wizard' === added file 'user_profile/wizard/__init__.py' --- user_profile/wizard/__init__.py 1970-01-01 00:00:00 +0000 +++ user_profile/wizard/__init__.py 2013-02-05 06:10:28 +0000 @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010-2013 OpenERP s.a. (<http://openerp.com>). +# +# 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 <http://www.gnu.org/licenses/>. +# +############################################################################## + +import add_coworker + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: === added file 'user_profile/wizard/add_coworker.py' --- user_profile/wizard/add_coworker.py 1970-01-01 00:00:00 +0000 +++ user_profile/wizard/add_coworker.py 2013-02-05 06:10:28 +0000 @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010-2013 OpenERP s.a. (<http://openerp.com>). +# +# 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 <http://www.gnu.org/licenses/>. +# +############################################################################## + +from osv import osv +from osv import fields +from openerp.tools.translate import _ +from lxml import etree +from openerp import SUPERUSER_ID +WELCOME_EMAIL_SUBJECT = _("Your OpenERP account at %(company)s") +WELCOME_EMAIL_BODY = _("""Dear %(name)s, + +Your login account data is: +Database: %(db)s +Username: %(login)s + +In order to complete the signin process, click on the following url: +%(url)s + +-- +OpenERP - Open Source Business Applications +http://www.openerp.com +""") + +class invite_coworkers_wizard(osv.TransientModel): + _name = 'invite.coworkers.wizard' + _description = 'Invite Coworker Wizard' + + def _get_alias_domain(self, cr, uid, ids, context=None): + ir_config_parameter = self.pool.get("ir.config_parameter") + domain = ir_config_parameter.get_param(cr, uid, "mail.catchall.domain", context=context) + return domain or "" + + def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False): + res = super(invite_coworkers_wizard, self).fields_view_get(cr, user, view_id, view_type, context, toolbar) + doc = etree.XML(res['arch']) + doc = etree.XML(res['arch']) + for fields in res['fields']: + nodes = doc.xpath("//label[@for='"+fields+"']") + for node in nodes: + node.set('string', self._get_alias_domain(cr, user, context)) + res['arch'] = etree.tostring(doc) + return res + + def default_get(self, cr, uid, fields, context=None): + result = super(invite_coworkers_wizard, self).default_get(cr, uid, fields, context=context) + if 'name' in fields: + message = _('<div>You have been invited to follow OpenERP.</div>') + result['name'] = message + return result + + def invite_coworker(self, cr, uid, ids, context=None): + coworkers=['coworker1','coworker2','coworker3','coworker4','coworker5','coworker6'] + invite_wizard=self.browse(cr, SUPERUSER_ID, ids, context)[0] + res_users = self.pool.get('res.users') + for coworker in coworkers: + if invite_wizard[coworker]: + user = self._retrieve_user(cr, SUPERUSER_ID, invite_wizard[coworker], context) + if not user: + user = self._create_user(cr, SUPERUSER_ID, invite_wizard[coworker], context) + user.partner_id.signup_prepare() + self._send_email(cr, uid, user, context) + + def _retrieve_user(self, cr, uid, invite_wizard, context=None): + res_users = self.pool.get('res.users') + domain = [('name', '=', invite_wizard)] + user_ids = res_users.search(cr, uid, domain) + return user_ids and res_users.browse(cr, uid, user_ids[0], context) or False + + def _create_user(self, cr, uid, invite_wizard, context=None): + res_users = self.pool.get('res.users') + create_context = dict(context or {}, noshortcut=True) + if invite_wizard: + values = { + 'name': invite_wizard, + 'email':invite_wizard+'@'+self._get_alias_domain(cr, uid, context), + 'login': invite_wizard, + 'groups_id': [(6, 0, [])], + 'share': True, + } + user_id = res_users.create(cr, uid, values, context=create_context) + return res_users.browse(cr, uid, user_id, context) + return False + + def _send_email(self, cr, uid, user, context=None): + this_context = context + this_user = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context) + if not this_user.email: + raise osv.except_osv(_('Email required'), + _('You must have an email address in your User Preferences to send emails.')) + + context = dict(this_context or {}, lang=user.lang) + data = { + 'company': this_user.company_id.name, + 'db': cr.dbname, + 'name': user.name, + 'login': user.login, + 'url': user.signup_url, + } + mail_mail = self.pool.get('mail.mail') + mail_values = { + 'email_from': this_user.email, + 'email_to': user.email, + 'subject': _(WELCOME_EMAIL_SUBJECT) % data, + 'body_html': '<pre>%s</pre>' % (_(WELCOME_EMAIL_BODY) % data), + 'state': 'outgoing', + 'type': 'email', + } + mail_id = mail_mail.create(cr, uid, mail_values, context=this_context) + return mail_mail.send(cr, uid, [mail_id], context=this_context) + + _columns = { + 'name':fields.html('Message Body'), + 'coworker1':fields.char('Coworker', size=64), + 'coworker2':fields.char('Coworker', size=64), + 'coworker3':fields.char('Coworker', size=64), + 'coworker4':fields.char('Coworker', size=64), + 'coworker5':fields.char('Coworker', size=64), + 'coworker6':fields.char('Coworker', size=64), + } + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: === added file 'user_profile/wizard/add_coworker_view.xml' --- user_profile/wizard/add_coworker_view.xml 1970-01-01 00:00:00 +0000 +++ user_profile/wizard/add_coworker_view.xml 2013-02-05 06:10:28 +0000 @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <record model="ir.ui.view" id="wizard_invite_coworker_form"> + <field name="name">Invite Coworkers</field> + <field name="model">invite.coworkers.wizard</field> + <field name="arch" type="xml"> + <form string="Invite Coworkers" version="7.0"> + <group string="coworker" col="4" colspan="4"> + <field name="coworker1" nolabel="1"/> + <label for="coworker1"/> + <field name="coworker2" nolabel="1"/> + <label for="coworker2"/> + <field name="coworker3" nolabel="1"/> + <label for="coworker3"/> + <field name="coworker4" nolabel="1"/> + <label for="coworker4"/> + <field name="coworker5" nolabel="1"/> + <label for="coworker5"/> + <field name="coworker6" nolabel="1"/> + <label for="coworker6"/> + </group> + <group> + <field name="name"/> + </group> + <footer> + <button string="Invite" name="invite_coworker" type="object" class="oe_highlight" /> + or + <button string="Cancel" class="oe_link" special="cancel" /> + </footer> + </form> + </field> + </record> + </data> +</openerp>
_______________________________________________ Mailing list: https://launchpad.net/~openerp-dev-gtk Post to : openerp-dev-gtk@lists.launchpad.net Unsubscribe : https://launchpad.net/~openerp-dev-gtk More help : https://help.launchpad.net/ListHelp