[FIX] crm, hr, mrp, sale: Improve some forms

bzr revid: stephane@openerp.com-20100216172139-qehy5r4h1d7g9eev
This commit is contained in:
Stephane Wirtel 2010-02-16 18:21:39 +01:00
parent 476182eea6
commit 972cd3033e
16 changed files with 161 additions and 144 deletions

View File

@ -46,11 +46,10 @@ class crm_claim(osv.osv):
'partner_mobile': fields.char('Mobile', size=32),
'partner_phone': fields.char('Phone', size=32),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]"),
'probability': fields.float('Probability (%)'),
}
_defaults = {
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
crm_claim()

View File

@ -36,9 +36,8 @@
<field name="id"/>
<field name="name"/>
<field name="partner_id"/>
<field name="date" string="Date"/>
<field name="date" string="Claims Date"/>
<field name="categ_id" string="Type" select="1"/>
<field name="probability"/>
<field name="state"/>
</tree>
</field>
@ -68,11 +67,10 @@
<field name="partner_mobile"/>
<field name="email_from"/>
</group>
<separator colspan="4" string="Status and Categarization"/>
<separator colspan="4" string="Status and Categorization"/>
<group colspan="4" col="6">
<field name="user_id" string="Responsible" select="2"/>
<field name="section_id" widget="selection"/>
<field name="probability"/>
<label string="Stage: " align="1.0"/>
<group colspan="1" col="2">
<field name="stage_id" select="1" nolabel="1"/>
@ -209,14 +207,18 @@
<field name="partner_id" select="1"/>
<field name="user_id" select="1" widget="selection"/>
</group>
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"
/>
</field>
</field>
<group expand="1" string="Group By..." colspan="4" col="20">
<filter string="Deadline" icon="terp-crm" domain="[]" context="{'group_by':'date_deadline'}"/>
<filter string="Closure" icon="terp-crm" domain="[]" context="{'group_by':'date_closed'}"/>
</group>
</search>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -76,7 +76,7 @@
<field name="planned_cost"/>
<field name="planned_revenue"/>
<field name="probability"/>
<separator colspan="4" string="Categarization"/>
<separator colspan="4" string="Categorization"/>
<group colspan="4" col="6">
<field name="user_id" select="2" string="Responsible"/>
<field name="section_id" colspan="1" widget="selection"/>

View File

@ -41,7 +41,7 @@
<button name="remind_partner" states="open,pending" string="Send Reminder" type="object" icon="gtk-go-forward"/>
</group>
<separator colspan="4" string="Categarization"/>
<separator colspan="4" string="Categorization"/>
<group col="7" colspan="4">
<field name="priority"/>
<field name="section_id" widget="selection"/>
@ -71,9 +71,7 @@
<field name="create_date"/>
<field name="date_closed"/>
<separator colspan="4" string="Estimates"/>
<field name="planned_revenue"/>
<field name="planned_cost"/>
<field name="probability"/>
<separator colspan="4" string="References"/>
<field colspan="4" name="ref"/>
<field colspan="4" name="ref2"/>
@ -126,10 +124,9 @@
<field name="arch" type="xml">
<tree string="Helpdesk Support Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
<field name="id"/>
<field name="name" string="Support Query"/>
<field name="name" />
<field name="partner_id" string="Partner"/>
<field name="planned_revenue"/>
<field name="probability"/>
<field name="create_date"/>
<field name="date_deadline"/>
<field name="user_id"/>
<field name="state"/>
@ -163,34 +160,39 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Helpdesk">
<group col="6" colspan="1">
<filter icon="gtk-home" string="Today"
separator="1"
domain="[('date::date','=',time.strftime('%%Y-%%m-%%d'))]"
help="Todays's Helpdesk Requests"
/>
<filter icon="gtk-media-rewind"
string="7 Days" separator="1"
help="Helpdesk requests during last 7 days"
domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d')), ('date','&gt;=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
/>
</group>
<separator orientation="vertical"/>
<group col="6" colspan="2">
<field name="name" select='1' string="Subject"/>
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Helpdesk Requests" default="1"/>
</field>
<field name="state" select="1">
<filter icon="gtk-index" domain="[('state','in',('open','draft' ))]" help="Current " default="1"/>
</field>
<field name="section_id" default="context.get('section_id', False)" select="1" widget="selection" string="Section">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"/>
</field>
</group>
</search>
<group col="6" colspan="1">
<filter icon="gtk-home" string="Today"
separator="1"
domain="[('date::date','=',time.strftime('%%Y-%%m-%%d'))]"
help="Todays's Helpdesk Requests"
/>
<filter icon="gtk-media-rewind"
string="7 Days" separator="1"
help="Helpdesk requests during last 7 days"
domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d')), ('date','&gt;=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
/>
</group>
<separator orientation="vertical"/>
<group col="6" colspan="2">
<field name="name" select='1' string="Subject"/>
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Helpdesk Requests" default="1"/>
</field>
<field name="state" select="1">
<filter icon="gtk-index" domain="[('state','in',('open','draft' ))]" help="Current " default="1"/>
</field>
<field name="section_id" default="context.get('section_id', False)" select="1" widget="selection" string="Section">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"/>
</field>
</group>
<group expand="1" string="Group By..." colspan="4" col="20">
<filter string="Customer" icon="terp-crm" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="State" icon="terp-crm" domain="[]" context="{'group_by':'state'}"/>
<filter string="Priority" icon="terp-crm" domain="[]" context="{'group_by':'priority'}"/>
</group>
</search>
</field>
</record>
</data>

View File

@ -58,7 +58,7 @@
string="Contact"
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
<field name="email_from"/>
<separator colspan="4" string="Status and Categarization"/>
<separator colspan="4" string="Status and Categorization"/>
<group colspan="4" col="6">
<field name="priority"/>
<field name="user_id" on_change="onchange_user_id(user_id)"/>

View File

@ -63,7 +63,7 @@
<field name="email_from" colspan="2" string="Email"/>
<field name="partner_phone" colspan="2"/>
<separator colspan="4" string="Status and Categarization"/>
<separator colspan="4" string="Status and Categorization"/>
<group colspan="4" col="6">
<field name="user_id" select="2" string="Responsible"/>
<field name="stage_id" select="1" string="Sales Stage" required="1" widget="selection" domain="[('object_id.model', '=', 'crm.opportunity')]"/>

View File

@ -45,9 +45,10 @@
<field name="partner_id" string="Partner"/>
<field name="partner_address_id" string="Contact"/>
<field name="opportunity_id"/>
<button string="Opportunity" name="%(wizard_crm_phonecall_opportunity_set)d" type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<button string="Opportunity"
name="%(wizard_crm_phonecall_opportunity_set)d" type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<button string="Meeting"
name="%(wizard_crm_phonecall_meeting_set)d" type="action" />
name="%(wizard_crm_phonecall_meeting_set)d" type="action" />
</tree>
</field>
</record>
@ -64,9 +65,10 @@
<field name="partner_address_id" string="Contact"/>
<group col="2">
<field name="opportunity_id"/>
<button string="Opportunity" name="%(wizard_crm_phonecall_opportunity_set)d" type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<button string="Opportunity"
name="%(wizard_crm_phonecall_opportunity_set)d" type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<button string="Meeting"
name="%(wizard_crm_phonecall_meeting_set)d" type="action" />
name="%(wizard_crm_phonecall_meeting_set)d" type="action" />
</group>
</tree>
</field>
@ -77,64 +79,60 @@
<field name="model">crm.phonecall</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Phone Call">
<group colspan="4" col="4">
<field name="name" string="Subject" />
<field name="date" string="Planned Date" />
<field name="partner_phone" />
<field name="duration" />
<newline />
<group col="7" colspan="4">
<label string="" colspan="2" />
<button string="Schedule a Meeting"
name="%(wizard_crm_phonecall_meeting_set)d" icon="gtk-redo"
type="action" />
<button string="Convert to Opportunity"
name="%(wizard_crm_phonecall_opportunity_set)d"
icon="gtk-index" type="action"
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<button string="Convert to Partner"
icon="terp-crm"
name="%(wizard_crm_phonecall_partner_create)d"
type="action"
attrs="{'invisible':[('partner_id','!=',False)]}" />
</group>
<group colspan="4" col="4">
<notebook colspan="4">
<page string="General">
<separator colspan="4" string="Communication" />
<field name="partner_id" />
<field name="partner_address_id" string="Contact" />
<field name="partner_mobile" />
<separator colspan="4" string="Status and Categarization" />
<group colspan="4" col="6">
<field name="user_id" string="Assigned to" select="2" />
<field name="section_id" colspan="1" widget="selection" />
<field name="opportunity_id"
on_change="onchange_case_id(case_id, name, partner_id)"
context="{'default_name':name,'default_section_id':section_id,'default_user_id':user_id,'default_duration':duration,
'default_partner_id':partner_id,'default_partner_address_id':partner_address_id,'default_partner_phone':partner_phone,
'default_partner_mobile':partner_mobile,'default_categ_id':categ_id}" />
<field name="som" />
<field name="priority" />
<field name="active" string="Reminder" />
</group>
<separator string="Description" colspan="4" />
<field name="description" nolabel="1" colspan="4" />
<separator colspan="4" />
<group col="8" colspan="4">
<field name="state" select="1" />
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
<button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-undo"/>
<button name="case_close" string="Held" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
</group>
</page>
</notebook>
</group>
</group>
</form>
<form string="Phone Call">
<group colspan="4" col="8">
<group colspan="7" col="4">
<field name="name" string="Subject" />
<field name="date" string="Planned Date" />
<field name="partner_phone" />
<field name="duration" />
</group>
<group col="1" colspan="1">
<button string="Schedule a Meeting"
name="%(wizard_crm_phonecall_meeting_set)d" icon="gtk-redo"
type="action" />
<button string="Convert to Opportunity"
name="%(wizard_crm_phonecall_opportunity_set)d"
icon="gtk-index" type="action"
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
</group>
</group>
<separator colspan="4" string="Communication" />
<field name="partner_id" />
<button string="Convert to Partner"
colspan="2"
icon="terp-crm"
name="%(wizard_crm_phonecall_partner_create)d"
type="action"
attrs="{'invisible':[('partner_id','!=',False)]}" />
<newline />
<field name="partner_address_id" string="Contact" />
<field name="partner_mobile" />
<separator colspan="4" string="Status and Categorization" />
<group colspan="4" col="6">
<field name="user_id" string="Assigned to" select="2" />
<field name="section_id" colspan="1" widget="selection" />
<field name="opportunity_id"
on_change="onchange_case_id(case_id, name, partner_id)"
context="{'default_name':name,'default_section_id':section_id,'default_user_id':user_id,'default_duration':duration,
'default_partner_id':partner_id,'default_partner_address_id':partner_address_id,'default_partner_phone':partner_phone,
'default_partner_mobile':partner_mobile,'default_categ_id':categ_id}" />
<field name="som" />
<field name="priority" />
<field name="active" string="Reminder" />
</group>
<separator string="Description" colspan="4" />
<field name="description" nolabel="1" colspan="4" />
<separator colspan="4" />
<group col="8" colspan="4">
<field name="state" select="1" />
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
<button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-undo"/>
<button name="case_close" string="Held" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
</group>
</form>
</field>
</record>

View File

@ -57,7 +57,7 @@
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
<field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)" colspan="1"/>
<field name="email_from" colspan="2"/>
<separator colspan="4" string="Status and Categarization"/>
<separator colspan="4" string="Status and Categorization"/>
<group colspan="4" col="6">
<field name="type_id" string="Version"/>
<field name="priority" string="Severity"/>

View File

@ -74,10 +74,12 @@ class hr_employee(osv.osv):
'gender': fields.selection([('',''),('male','Male'),('female','Female')], 'Gender'),
'marital': fields.many2one('hr.employee.marital.status', 'Marital Status'),
'partner_id' : fields.related('company_id', 'partner_id', type='many2one', relation='res.partner', readonly=True),
'address_id': fields.many2one('res.partner.address', 'Working Address'),
'address_home_id': fields.many2one('res.partner.address', 'Home Address'),
'work_phone': fields.related('address_id', 'phone', type='char', string='Work Phone'),
'work_email': fields.related('address_id', 'email', type='char', string='Work E-mail'),
'work_email': fields.related('address_id', 'email', type='char', size=240, string='Work E-mail'),
'work_location': fields.char('Office Location', size=32),
'notes': fields.text('Notes'),

View File

@ -55,7 +55,8 @@
<group col="2" colspan="2">
<separator string="Contact Information" colspan="2"/>
<field name="address_home_id" colspan="2"/>
<field name="address_id" colspan="2"/>
<field name="partner_id" invisible="1" />
<field name="address_id" colspan="2" domain="[('partner_id', '=', partner_id)]"/>
<field name="work_phone"/>
<field name="work_email" widget="email" />
<field name="work_location"/>

View File

@ -783,7 +783,7 @@ class mrp_procurement(osv.osv):
_description = "Procurement"
_order = 'priority,date_planned'
_columns = {
'name': fields.char('Name', size=64, required=True, help='Requisition name.'),
'name': fields.char('Reason', size=64, required=True, help='Requisition name.'),
'origin': fields.char('Source Document', size=64,
help="Reference of the document that created this Requisition.\n"
"This is automatically completed by Open ERP."),

View File

@ -473,7 +473,21 @@
<field name="bom_id" select="2" domain="[('product_id','=',product_id),('bom_id','=',False)]" on_change="bom_id_change(bom_id)"/>
<field name="routing_id" groups="base.group_extended" select="1"/>
<newline/>
<field colspan="4" name="move_lines" nolabel="1" widget="one2many_list"/>
<field colspan="4" name="move_lines" nolabel="1" widget="one2many_list">
<tree string="Moves">
<field name="product_id" select="1"/>
<field name="product_qty" select="1"/>
<field name="product_uom" select="1" string="UOM"/>
<field name="prodlot_id" select="1"/>
<field name="product_packaging" domain="[('product_id','=',product_id)]"/>
<field name="picking_id"/>
<field name="location_id" select="1"/>
<field name="location_dest_id" select="1"/>
<field name="date" select="1"/>
<field name="date_planned" select="1" string="Date"/>
</tree>
</field>
<group col="9" colspan="4">
<field name="state" select="2"/>
<button name="action_compute" states="draft" string="Compute Data" type="object" icon="gtk-execute"/>
@ -540,11 +554,11 @@
<field name="routing_id" select='1'/>
<field name="origin" select='1'/>
</group>
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="8">
<filter string="By Product" icon="terp-mrp" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="By State" icon="terp-mrp" domain="[]" context="{'group_by':'state'}"/>
<group expand="context.get('report',False)" string="Group By" colspan="4" col="8">
<filter string="Product" icon="terp-mrp" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="State" icon="terp-mrp" domain="[]" context="{'group_by':'state'}"/>
<filter string="Scheduled Date" icon="terp-mrp" domain="[]" context="{'group_by':'date_planned'}"/>
</group>
</group>
</search>
</field>
</record>
@ -666,8 +680,8 @@
</record>
<!--
Procurement
-->
Procurement
-->
<record id="mrp_procurement_tree_view" model="ir.ui.view">
<field name="name">mrp.procurement.tree</field>
@ -675,8 +689,8 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Procurement Lines" colors="red:state=='draft';black:state=='running';green:state=='confirmed';gray:state in ['done','cancel']">
<field name="date_planned" widget="date"/>
<field name="origin"/>
<field name="date_planned" widget="date"/>
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_uom" string="UOM"/>
@ -760,10 +774,10 @@
<field name="date_planned" widget="date"/>
<field name="state" />
</group>
<group expand="1" string="Group By..." colspan="4" col="8">
<filter string="By Product" icon="terp-mrp" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="By Procurement Reason" icon="terp-mrp" domain="[]" context="{'group_by':'name'}"/>
<filter string="By Scheduled Date" icon="terp-mrp" domain="[]" context="{'group_by':'date_planned'}"/>
<group expand="1" string="Group By" colspan="4" col="8">
<filter string="Product" icon="terp-mrp" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Reason" icon="terp-mrp" domain="[]" context="{'group_by':'name'}"/>
<filter string="Scheduled Date" icon="terp-mrp" domain="[]" context="{'group_by':'date_planned'}"/>
</group>
</search>
</field>

View File

@ -4,7 +4,6 @@
<wizard id="wiz_mrp_proc0" model="mrp.procurement" string="Compute Schedulers" name="mrp.procurement.compute.all"/>
<menuitem id="menu_mrp_scheduler" name="Schedulers" parent="menu_mrp_root" sequence="4"/>
<menuitem action="wiz_mrp_proc0" id="mrp_Sched_all" parent="mrp.menu_mrp_scheduler" type="wizard" sequence="90"/>
<wizard id="wiz_mrp_proc1" model="mrp.procurement" string="Compute Requisitions Only" name="mrp.procurement.compute"/>
<!--
<menuitem action="wiz_mrp_proc1" id="menu_wiz_mrp_proc1" parent="mrp.mrp_Sched_all" type="wizard"/>
-->
@ -25,19 +24,19 @@
<field eval="True" name="object"/>
</record>
<wizard
string="Requisition Request"
model="product.product"
name="product.product.procurement"
keyword="client_action_multi"
id="product_procurement_wizard"/>
<wizard
string="Requisition Request"
model="product.product"
name="product.product.procurement"
keyword="client_action_multi"
id="product_procurement_wizard"/>
<wizard
id="stock.track_line"
model="stock.move"
multi="True"
name="mrp.stock.move.track"
string="Track line"/>
<wizard
id="stock.track_line"
model="stock.move"
multi="True"
name="mrp.stock.move.track"
string="Track line"/>
</data>
</openerp>

View File

@ -58,7 +58,7 @@ class procurement_compute(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Requisitions')]}
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Stock')]}
},
'compute': {
'actions': [_procure_calculation],

View File

@ -51,7 +51,7 @@ class procurement_compute(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Requisitions') ]}
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Stock') ]}
},
'compute': {
'actions': [_procure_calculation],

View File

@ -195,8 +195,8 @@ class sale_order(osv.osv):
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
('cancel', 'Cancelled')
], 'Order State', readonly=True, help="Gives the state of the quotation or sale order. The exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception). The 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the date 'Date Ordered'.", select=True),
'date_order': fields.date('Date Ordered', required=True, readonly=True, states={'draft': [('readonly', False)]}),
], 'Order State', readonly=True, help="Gives the state of the quotation or sale order. The exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception). The 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the date 'Ordered Date'.", select=True),
'date_order': fields.date('Ordered Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'user_id': fields.many2one('res.users', 'Salesman', states={'draft': [('readonly', False)]}, select=True),
'partner_id': fields.many2one('res.partner', 'Customer', readonly=True, states={'draft': [('readonly', False)]}, required=True, change_default=True, select=True),