diff options
| author | Amit Patel (OpenERP) <apa@tinyerp.com> | 2012-08-01 12:34:25 +0530 |
|---|---|---|
| committer | Amit Patel (OpenERP) <apa@tinyerp.com> | 2012-08-01 12:34:25 +0530 |
| commit | 522a3edc19c7446c723d1b3e4cb4c19c89a36fa4 (patch) | |
| tree | 4eedd0276ee76e89c9cced59507bea4ff987874b /addons/event | |
| parent | 6e5d18a9332c3115b1eac5cd64d022545c56b987 (diff) | |
| parent | e845e2350c694484793020ab6a9a729f9c205de6 (diff) | |
[MERGE]:merged with trunk
bzr revid: apa@tinyerp.com-20120801070425-ydyx8nc2ngi3j0zi
Diffstat (limited to 'addons/event')
| -rw-r--r-- | addons/event/event.py | 23 | ||||
| -rw-r--r-- | addons/event/event_view.xml | 111 | ||||
| -rw-r--r-- | addons/event/report/report_event_registration_view.xml | 43 | ||||
| -rw-r--r-- | addons/event/security/event_security.xml | 65 |
4 files changed, 99 insertions, 143 deletions
diff --git a/addons/event/event.py b/addons/event/event.py index 6a8cf9f8a0b..c3942642b3d 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -23,6 +23,7 @@ import time from osv import fields, osv from tools.translate import _ import decimal_precision as dp +from openerp import SUPERUSER_ID class event_type(osv.osv): """ Event Type """ @@ -159,7 +160,7 @@ class event_event(osv.osv): elif field == 'register_prospect': number = reg_draft elif field == 'register_avail': - #the number of ticket is unlimited if the event.register_max field is not set. + #the number of ticket is unlimited if the event.register_max field is not set. #In that cas we arbitrary set it to 9999, it is used in the kanban view to special case the display of the 'subscribe' button number = event.register_max - reg_open if event.register_max != 0 else 9999 res[event.id][field] = number @@ -178,7 +179,7 @@ class event_event(osv.osv): if reg.state in ('open','done'): res[event.id]= True continue - return res + return res _columns = { 'name': fields.char('Name', size=64, required=True, translate=True, readonly=False, states={'done': [('readonly', True)]}), @@ -189,7 +190,7 @@ class event_event(osv.osv): 'register_current': fields.function(_get_register, string='Confirmed Registrations', multi='register_numbers'), 'register_avail': fields.function(_get_register, string='Available Registrations', multi='register_numbers',type='integer'), 'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', multi='register_numbers'), - 'register_attended': fields.function(_get_register, string='# of Participations', multi='register_numbers'), + 'register_attended': fields.function(_get_register, string='# of Participations', multi='register_numbers'), 'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}), 'date_begin': fields.datetime('Start Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'date_end': fields.datetime('End Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), @@ -227,18 +228,18 @@ class event_event(osv.osv): self.check_registration_limits_before(cr, uid, ids, num_of_seats, context=context) user = user_pool.browse(cr, uid, uid, context=context) curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) - #the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe + #the subscription is done with SUPERUSER_ID because in case we share the kanban view, we want anyone to be able to subscribe if not curr_reg_ids: - curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})] + curr_reg_ids = [register_pool.create(cr, SUPERUSER_ID, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})] else: register_pool.write(cr, uid, curr_reg_ids, {'nb_register': num_of_seats}, context=context) - return register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context) + return register_pool.confirm_registration(cr, SUPERUSER_ID, curr_reg_ids, context=context) def unsubscribe_to_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') - #the unsubscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to unsubscribe - curr_reg_ids = register_pool.search(cr, 1, [('user_id', '=', uid), ('event_id', '=', ids[0])]) - return register_pool.button_reg_cancel(cr, 1, curr_reg_ids, context=context) + #the unsubscription is done with SUPERUSER_ID because in case we share the kanban view, we want anyone to be able to unsubscribe + curr_reg_ids = register_pool.search(cr, SUPERUSER_ID, [('user_id', '=', uid), ('event_id', '=', ids[0])]) + return register_pool.button_reg_cancel(cr, SUPERUSER_ID, curr_reg_ids, context=context) def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): @@ -260,7 +261,7 @@ class event_event(osv.osv): 'register_max': type_info.default_registration_max, } return {'value': dic} - + # ---------------------------------------- # OpenChatter methods and notifications # ---------------------------------------- @@ -415,7 +416,7 @@ class event_registration(osv.osv): return {} event_obj = self.pool.get('event.event') data_event = event_obj.browse(cr, uid, event_id, context=context) - return {'value': + return {'value': {'event_begin_date': data_event.date_begin, 'event_end_date': data_event.date_end, 'company_id': data_event.company_id and data_event.company_id.id or False, diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 890cb1be9e6..95997e6278c 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -1,6 +1,7 @@ <?xml version="1.0"?> <openerp> <data> + <act_window id="act_event_list_register_event" name="Registration" @@ -13,6 +14,7 @@ <!-- Top menu item --> <menuitem name="Events" id="event_main_menu" + groups="base.group_user" sequence="80"/> <menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu"/> @@ -102,10 +104,12 @@ <field name="arch" type="xml"> <form string="Events" version="7.0"> <header> - <button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight"/> - <button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight"/> - <button string="Set To Draft" name="button_draft" states="cancel,done" type="object" /> - <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/> + <span groups="base.user_group"> + <button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight"/> + <button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight"/> + <button string="Set To Draft" name="button_draft" states="cancel,done" type="object" /> + <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/> + </span> <field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/> </header> <sheet> @@ -126,20 +130,20 @@ <field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_google_map'}"/> <field name="street" placeholder="Street..."/> <div> - <field name="zip" class="oe_inline" placeholder="Zip"/> - <field name="city" class="oe_inline" placeholder="City"/> + <field name="zip" class="oe_inline" placeholder="Zip"/> + <field name="city" class="oe_inline" placeholder="City"/> </div> </div> </group> <group> - <field name="type" on_change="onchange_event_type(type,context)"/> - <field name="register_min"/> - <field name="register_max"/> - <label for="register_current" string="Current Registrations"/> - <div> - Confirmed: <field name="register_current" class="oe_inline"/>, Unconfirmed: <field name="register_prospect" class="oe_inline"/> - </div> - </group> + <field name="type" on_change="onchange_event_type(type,context)"/> + <field name="register_min"/> + <field name="register_max"/> + <label for="register_current" string="Current Registrations" groups="base.group_user"/> + <div groups="base.group_user"> + Confirmed: <field name="register_current" class="oe_inline"/>, Unconfirmed: <field name="register_prospect" class="oe_inline"/> + </div> + </group> </group> </div> <!-- <div class="oe_right" style="height: 200px"></div> --> @@ -328,37 +332,22 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Events"> - <filter icon="terp-mail-message-new" - string="Inbox" help="Unread messages" - name="needaction_pending" - domain="[('needaction_pending','=',True)]"/> - <separator orientation="vertical"/> - <group> - <field name="name" string="Events"/> - <separator orientation="vertical"/> - <filter icon="terp-check" string="Unconfirmed" name="draft" domain="[('state','=','draft')]" help="Events in New state"/> - <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed events"/> - <filter icon="terp-personal" - string="My Events" - help="My Events" - domain="[('user_id','=',uid)]"/> - <filter icon="terp-go-today" string="Upcoming" - name="upcoming" - domain="[('date_begin','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" - help="Upcoming events from today" /> - <separator orientation="vertical"/> - <field name="type" widget="selection"/> - <field name="user_id" widget="selection"/> - </group> - <newline/> + <field name="name" string="Events"/> + <filter icon="terp-mail-message-new" string="Inbox" help="Unread messages" name="needaction_pending" domain="[('needaction_pending','=',True)]"/> + <separator/> + <filter icon="terp-check" string="Unconfirmed" name="draft" domain="[('state','=','draft')]" help="Events in New state"/> + <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed events"/> + <separator/> + <filter icon="terp-personal" string="My Events" help="My Events" domain="[('user_id','=',uid)]"/> + <separator/> + <filter icon="terp-go-today" string="Upcoming" name="upcoming" domain="[('date_begin','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Upcoming events from today" /> + <field name="type"/> + <field name="user_id"/> <group expand="0" string="Group By..."> <filter string="Responsible" icon="terp-personal" context="{'group_by': 'user_id'}"/> - <separator orientation="vertical"/> <filter string="Event Type" icon="terp-crm" context="{'group_by':'type'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> - <separator orientation="vertical"/> - <filter string="Starting Date" icon="terp-go-month" - domain="[]" context="{'group_by':'date_begin'}"/> + <filter string="Starting Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_begin'}"/> </group> </search> </field> @@ -474,8 +463,8 @@ <div> <field name="email" class="oe_inline"/> <button class="oe_inline oe_right" string="Send Email" - name="%(mail.action_email_compose_message_wizard)d" - icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/> + name="%(mail.action_email_compose_message_wizard)d" + icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/> </div> </group> <group> @@ -529,34 +518,21 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Event Registration"> - <group> - <filter icon="terp-mail-message-new" - string="Inbox" help="Unread messages" - name="needaction_pending" - domain="[('needaction_pending','=',True)]"/> - <separator orientation="vertical"/> - <field name="name" string="Participant" - filter_domain="['|','|','|',('name','ilike',self),('partner_id','ilike',self),('email','ilike',self),('origin','ilike',self)]"/> - <separator orientation="vertical"/> - <filter icon="terp-check" string="New" name="draft" domain="[('state','=','draft')]" help="Registrations in unconfirmed state"/> - <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/> - <filter icon="terp-personal" - string="My Registrations" - help="My Registrations" - domain="[('user_id','=',uid)]"/> - <separator orientation="vertical"/> - <field name="event_id" widget="selection"/> - <field name="user_id"/> - </group> - <newline/> + <field name="name" string="Participant" filter_domain="['|','|','|',('name','ilike',self),('partner_id','ilike',self),('email','ilike',self),('origin','ilike',self)]"/> + <filter icon="terp-mail-message-new" string="Inbox" help="Unread messages" name="needaction_pending" domain="[('needaction_pending','=',True)]"/> + <separator/> + <filter icon="terp-check" string="New" name="draft" domain="[('state','=','draft')]" help="Registrations in unconfirmed state"/> + <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/> + <separator/> + <filter icon="terp-personal" string="My Registrations" help="My Registrations" domain="[('user_id','=',uid)]"/> + <field name="event_id"/> + <field name="user_id"/> <group expand="0" string="Group By..."> <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/> - <separator orientation="vertical"/> <filter string="Event" icon="terp-crm" domain="[]" context="{'group_by':'event_id'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> </group> - </search> </field> </record> @@ -571,12 +547,11 @@ <field name="search_view_id" ref="view_registration_search"/> </record>view_ - <menuitem - name="Registrations" + <menuitem name="Registrations" id="menu_action_registration" parent="base.menu_event_main" action="action_registration" groups="event.group_event_manager,event.group_event_user"/> - <menuitem name="Reporting" id="base.menu_report_association" parent="event_main_menu" sequence="20"/> + </data> </openerp> diff --git a/addons/event/report/report_event_registration_view.xml b/addons/event/report/report_event_registration_view.xml index 7ae6c0fae2e..f05fdcc09e1 100644 --- a/addons/event/report/report_event_registration_view.xml +++ b/addons/event/report/report_event_registration_view.xml @@ -52,24 +52,12 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Event on Registration"> - <group> - <filter icon="terp-document-new" - string="New" - domain="[('event_state','=','draft')]" - help="Events which are in New state"/> - <filter icon="terp-check" - string="Confirm" - domain="[('event_state','=','confirm')]" - help="Events which are in confirm state"/> - <filter icon="terp-personal" - string="My Events" - help="My Events" - domain="[('user_id','=',uid)]"/> - <separator orientation="vertical"/> - <field name="event_id" string="Event"/> - <field name="user_id" widget="selection"/> - </group> - <newline/> + <filter icon="terp-document-new" string="New" domain="[('event_state','=','draft')]" help="Events which are in New state"/> + <filter icon="terp-check" string="Confirm" domain="[('event_state','=','confirm')]" help="Events which are in confirm state"/> + <separator/> + <filter icon="terp-personal" string="My Events" help="My Events" domain="[('user_id','=',uid)]"/> + <field name="event_id" string="Event"/> + <field name="user_id"/> <group expand="0" string="Extended Filters..."> <field name="event_type" widget="selection"/> <field name="event_date"/> @@ -80,27 +68,18 @@ <filter string="Register" icon="terp-personal" context="{'group_by':'user_id_registration'}" help="Registration contact" groups="base.extended"/> <filter string="Speaker" name="speaker" icon="terp-personal+" context="{'group_by': 'speaker_id'}" groups="base.extended"/> <filter string="Event Responsible" name="user_id" icon="terp-personal" context="{'group_by': 'user_id'}"/> - <separator orientation="vertical"/> <filter string="Event" name="event" icon="terp-crm" context="{'group_by':'event_id', 'max_reg_event_visible':0}"/> <filter string="Event Type" icon="terp-crm" context="{'group_by':'event_type'}"/> - <separator orientation="vertical"/> <filter string="Event State" icon="terp-stock_effects-object-colorize" context="{'group_by':'event_state'}"/> <filter string="Registration State" icon="terp-stock_effects-object-colorize" context="{'group_by':'registration_state'}"/> - <separator orientation="vertical" groups="base.group_multi_company"/> <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> - <separator orientation="vertical" /> - <filter string="Day" icon="terp-go-month" - domain="[]" context="{'group_by':'event_date'}" help="Event Beginning Date"/> - <filter string="Month" icon="terp-go-month" - domain="[]" context="{'group_by':'month'}" help="Event Beginning Date"/> - <filter string="Year" icon="terp-go-year" - domain="[]" context="{'group_by':'year'}" help="Event Beginning Date"/> + <filter string="Day" icon="terp-go-month" domain="[]" context="{'group_by':'event_date'}" help="Event Beginning Date"/> + <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'month'}" help="Event Beginning Date"/> + <filter string="Year" icon="terp-go-year" domain="[]" context="{'group_by':'year'}" help="Event Beginning Date"/> </group> <group expand="0" string="Display"> - <filter icon="terp-camera_test" - string="Show Confirmed Registrations" - help="Registrations in confirmed or done state" - context="{'no_of_draft_invisible':1}"/> + <filter icon="terp-camera_test" string="Show Confirmed Registrations" + help="Registrations in confirmed or done state" context="{'no_of_draft_invisible':1}"/> </group> </search> </field> diff --git a/addons/event/security/event_security.xml b/addons/event/security/event_security.xml index e0d17c3bacb..f46bc5fff96 100644 --- a/addons/event/security/event_security.xml +++ b/addons/event/security/event_security.xml @@ -1,45 +1,46 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> -<data noupdate="0"> + <data> - <record model="ir.module.category" id="module_category_event_management"> + <record model="ir.module.category" id="module_category_event_management"> <field name="name">Event</field> <field name="description">Helps you manage your Events.</field> <field name="sequence">3</field> </record> - <record id="group_event_user" model="res.groups"> - <field name="name">User</field> - <field name="category_id" ref="module_category_event_management"/> - </record> + <record id="group_event_user" model="res.groups"> + <field name="name">User</field> + <field name="category_id" ref="module_category_event_management"/> + </record> + + <record id="group_event_manager" model="res.groups"> + <field name="name">Manager</field> + <field name="category_id" ref="module_category_event_management"/> + <field name="implied_ids" eval="[(4, ref('group_event_user'))]"/> + <field name="users" eval="[(4, ref('base.user_root'))]"/> + </record> - <record id="group_event_manager" model="res.groups"> - <field name="name">Manager</field> - <field name="category_id" ref="module_category_event_management"/> - <field name="implied_ids" eval="[(4, ref('group_event_user'))]"/> - <field name="users" eval="[(4, ref('base.user_root'))]"/> - </record> + <!-- Multi - Company Rules --> + <record model="ir.rule" id="event_event_comp_rule"> + <field name="name">Event multi-company</field> + <field name="model_id" ref="model_event_event"/> + <field name="global" eval="True"/> + <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> + </record> - <!-- Multi - Company Rules --> + <record model="ir.rule" id="event_registration_comp_rule"> + <field name="name">Event Registration multi-company</field> + <field name="model_id" ref="model_event_registration"/> + <field name="global" eval="True"/> + <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> + </record> - <record model="ir.rule" id="event_event_comp_rule"> - <field name="name">Event multi-company</field> - <field name="model_id" ref="model_event_event"/> - <field name="global" eval="True"/> - <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> - </record> - <record model="ir.rule" id="event_registration_comp_rule"> - <field name="name">Event Registration multi-company</field> - <field name="model_id" ref="model_event_registration"/> - <field name="global" eval="True"/> - <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> - </record> + <record model="ir.rule" id="report_event_registration_comp_rule"> + <field name="name">Report Event Registration multi-company</field> + <field name="model_id" ref="model_report_event_registration"/> + <field name="global" eval="True"/> + <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> + </record> - <record model="ir.rule" id="report_event_registration_comp_rule"> - <field name="name">Report Event Registration multi-company</field> - <field name="model_id" ref="model_report_event_registration"/> - <field name="global" eval="True"/> - <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> - </record>--> -</data> + </data> </openerp> |
