[IMP] Improve the search view of event registration analysis

bzr revid: ara@tinyerp.com-20101013094428-gqr6pzajpg85xnwq
This commit is contained in:
ARA (OpenERP) 2010-10-13 15:14:28 +05:30
parent 0ea617db0e
commit fa4ceb7b4c
2 changed files with 54 additions and 28 deletions

View File

@ -34,7 +34,7 @@ class report_event_registration(osv.osv):
'month': fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
'day': fields.char('Day', size=128, readonly=True),
'day': fields.char('Date', size=128, readonly=True),
'event_id': fields.many2one('event.event', 'Event Related', required=True),
'draft_state': fields.integer(' # No of draft Registration.', size=20),
'confirm_state': fields.integer(' # No of Confirm Registration', size=20),
@ -44,6 +44,11 @@ class report_event_registration(osv.osv):
'state': fields.selection([('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'State', readonly=True, required=True),
'user_id': fields.many2one('res.users', 'Responsible', readonly=True),
'speaker_id': fields.many2one('res.partner', 'Speaker', readonly=True),
'company_id': fields.many2one('res.company', 'Company', readonly=True),
'product_id': fields.many2one('product.product', 'Product', readonly=True),
"invoice_id": fields.many2one("account.invoice", "Invoice", readonly=True),
'total': fields.float('Total'),
'section_id': fields.related('event_id', 'section_id', type='many2one', relation='crm.case.section', string='Sale Team', store=True, readonly=True),
}
_order = 'date desc'
def init(self, cr):
@ -59,6 +64,9 @@ class report_event_registration(osv.osv):
c.event_id AS event_id,
e.date_begin AS date,
e.user_id AS user_id,
e.section_id AS section_id,
e.company_id AS company_id,
e.product_id AS product_id,
e.main_speaker_id AS speaker_id,
to_char(e.date_begin, 'YYYY') AS year,
to_char(e.date_begin, 'MM') AS month,
@ -67,6 +75,8 @@ class report_event_registration(osv.osv):
t.id AS type,
(SELECT SUM(c.nb_register) FROM event_registration c WHERE c.event_id=e.id AND t.id=e.type AND state IN ('draft')) AS draft_state,
(SELECT SUM(c.nb_register) FROM event_registration c WHERE c.event_id=e.id AND t.id=e.type AND state IN ('open')) AS confirm_state,
(SELECT SUM(c.invoice_id) FROM event_registration c WHERE c.event_id=e.id AND t.id=e.type) AS invoice_id,
(SELECT SUM(c.unit_price * c.nb_register) FROM event_registration c WHERE c.event_id=e.id AND t.id=e.type) AS total,
e.register_max AS register_max,
e.state AS state
FROM
@ -79,7 +89,7 @@ class report_event_registration(osv.osv):
to_char(e.date_begin, 'YYYY'),
to_char(e.date_begin, 'MM'),
t.id, e.id, e.date_begin, e.main_speaker_id,
e.register_max, e.type, e.state, c.event_id, e.user_id,
e.register_max, e.type, e.state, c.event_id, e.user_id,e.company_id,e.product_id,e.section_id,
to_char(e.date_begin, 'YYYY-MM-DD')
)""")

View File

@ -18,9 +18,14 @@
<field name="state" invisible="1"/>
<field name="type" invisible="1"/>
<field name="nbevent"/>
<field name="draft_state"/>
<field name="draft_state" invisible="context.get('no_of_draft_visible', False)"/>
<field name="confirm_state"/>
<field name="register_max"/>
<field name="register_max" invisible="context.get('max_reg_event_visible', True)"/>
<field name="company_id" invisible="1"/>
<field name="product_id" invisible="1"/>
<field name="invoice_id" invisible="1"/>
<field name="section_id" invisible="1"/>
<field name="total" invisible="context.get('total_visible', True)" sum="Total"/>
</tree>
</field>
</record>
@ -42,13 +47,13 @@
<!-- Event on Registration search view -->
<record model="ir.ui.view" id="view_report_event_registration_search">
<field name="name">.search</field>
<field name="name">report.event.registration.search</field>
<field name="model">report.event.registration</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Event on Registration">
<group col="8" colspan="4">
<filter icon="terp-go-year" string="Last 365 Days"
<filter icon="terp-go-year" string="Last 365 Days" name="365day"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="Tasks performed in last 365 days"/>
<filter icon="terp-go-month" string="Last 30 Days"
@ -60,52 +65,63 @@
separator="1"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Tasks during last 7 days"/>
<separator orientation="vertical"/>
<filter icon="terp-document-new"
string="Draft"
domain="[('state','=','draft')]"/>
<filter icon="terp-camera_test"
string="Confirm"
domain="[('state', '=', 'confirm')]"/>
<filter string="Invoiced"
name="invoiced"
icon="terp-dolar"
domain="[('invoice_id','!=','')]"
help = "Invoices" context="{'total_visible':0}"/>
<filter icon="terp-check"
string="Current Event" name="draft"
domain="[('state','in',('draft', 'confirm'))]" help="Events in draft or confirmed state"/>
<filter icon="terp-camera_test"
string="Confirmed Registrations"
domain="[('state','=','confirm')]" context="{'no_of_draft_visible':1}" help="Events in confirmed state"/>
<separator orientation="vertical"/>
<field name="event_id" widget="selection"/>
<field name="type" widget="selection"/>
<field name="user_id" widget="selection">
<filter icon="terp-personal"
string="My Events"
help="My Events"
domain="[('user_id','=',uid)]"/>
</field>
<field name="date"/>
<field name="event_id" string="Event"/>
<field name="user_id" widget="selection">
<filter icon="terp-personal"
string="My Events"
help="My Events"
domain="[('user_id','=',uid)]"/>
</field>
</group>
<newline/>
<group expand="0" string="Group By..." colspan="4" col="12">
<filter string="Event" name="event" icon="terp-crm" context="{'group_by':'event_id'}"/>
<group expand="1" string="Group By..." colspan="4" col="12">
<filter string="Event" name="event" icon="terp-crm" context="{'group_by':'event_id', 'max_reg_event_visible':0}"/>
<filter string="Sale Team" icon="terp-personal" context="{'group_by': 'section_id'}"/>
<filter string="Product" icon="terp-product" context="{'group_by': 'product_id'}"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<filter string="Event Type" icon="terp-crm" context="{'group_by':'type'}"/>
<separator orientation="vertical"/>
<filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}" help="Registration State"/>
<separator orientation="vertical"/>
<filter string="Speaker" name="user" icon="terp-personal+" context="{'group_by': 'speaker_id'}"/>
<separator orientation="vertical" />
<filter string="Day" icon="terp-go-month"
<filter string="Date" icon="terp-go-month"
domain="[]" context="{'group_by':'day'}"/>
<filter string="Month" icon="terp-go-month"
domain="[]" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-go-year"
domain="[]" context="{'group_by':'year'}"/>
</group>
<newline/>
<group expand="0" string="Extended Filters..." groups="base.group_extended">
<field name="type" widget="selection"/>
<field name="date"/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_event_registration">
<field name="name">Events On Registrations</field>
<field name="name">Registration Analysis</field>
<field name="res_model">report.event.registration</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="search_view_id" ref="view_report_event_registration_search"/>
<field name="context">{"search_default_user":1,"search_default_month":1,'group_by_no_leaf':1,'group_by':[]}</field>
<field name="context">{"search_default_invoiced":1, "search_default_event":1,"search_default_365day":1,'group_by_no_leaf':1,'group_by':[]}</field>
</record>
<record model="ir.actions.act_window.view" id="action_report_event_registration_tree">