summaryrefslogtreecommitdiff
path: root/addons/event
diff options
context:
space:
mode:
authorAmit Patel (OpenERP) <apa@tinyerp.com>2012-08-01 12:34:25 +0530
committerAmit Patel (OpenERP) <apa@tinyerp.com>2012-08-01 12:34:25 +0530
commit522a3edc19c7446c723d1b3e4cb4c19c89a36fa4 (patch)
tree4eedd0276ee76e89c9cced59507bea4ff987874b /addons/event
parent6e5d18a9332c3115b1eac5cd64d022545c56b987 (diff)
parente845e2350c694484793020ab6a9a729f9c205de6 (diff)
[MERGE]:merged with trunk
bzr revid: apa@tinyerp.com-20120801070425-ydyx8nc2ngi3j0zi
Diffstat (limited to 'addons/event')
-rw-r--r--addons/event/event.py23
-rw-r--r--addons/event/event_view.xml111
-rw-r--r--addons/event/report/report_event_registration_view.xml43
-rw-r--r--addons/event/security/event_security.xml65
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','&gt;=', 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','&gt;=', 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>