[CLEAN] addons: various linkt cleanup (indentation, spaces, ...).
bzr revid: tde@openerp.com-20130403081009-jy35sm7dl4pq7eyu
This commit is contained in:
parent
bdd8a38121
commit
ba9412cb5d
|
@ -116,11 +116,26 @@ Dashboard for CRM will include:
|
||||||
'test/ui/duplicate_lead.yml',
|
'test/ui/duplicate_lead.yml',
|
||||||
'test/ui/delete_lead.yml',
|
'test/ui/delete_lead.yml',
|
||||||
],
|
],
|
||||||
'css': ['static/src/css/crm.css'],
|
'css': [
|
||||||
'js': ['static/src/js/crm.js'],
|
'static/src/css/crm.css'
|
||||||
|
],
|
||||||
|
'js': [
|
||||||
|
'static/src/js/crm.js'
|
||||||
|
],
|
||||||
'installable': True,
|
'installable': True,
|
||||||
'application': True,
|
'application': True,
|
||||||
'auto_install': False,
|
'auto_install': False,
|
||||||
'images': ['images/crm_dashboard.png', 'images/customers.png','images/leads.png','images/opportunities_kanban.png','images/opportunities_form.png','images/opportunities_calendar.png','images/opportunities_graph.png','images/logged_calls.png','images/scheduled_calls.png','images/stages.png'],
|
'images': [
|
||||||
|
'images/crm_dashboard.png',
|
||||||
|
'images/customers.png',
|
||||||
|
'images/leads.png',
|
||||||
|
'images/opportunities_kanban.png',
|
||||||
|
'images/opportunities_form.png',
|
||||||
|
'images/opportunities_calendar.png',
|
||||||
|
'images/opportunities_graph.png',
|
||||||
|
'images/logged_calls.png',
|
||||||
|
'images/scheduled_calls.png',
|
||||||
|
'images/stages.png',
|
||||||
|
],
|
||||||
}
|
}
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
|
@ -98,6 +98,7 @@ class crm_case_stage(osv.osv):
|
||||||
'case_default': True,
|
'case_default': True,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class crm_case_section(osv.osv):
|
class crm_case_section(osv.osv):
|
||||||
""" Model for sales teams. """
|
""" Model for sales teams. """
|
||||||
_name = "crm.case.section"
|
_name = "crm.case.section"
|
||||||
|
@ -107,7 +108,7 @@ class crm_case_section(osv.osv):
|
||||||
_order = "complete_name"
|
_order = "complete_name"
|
||||||
|
|
||||||
def get_full_name(self, cr, uid, ids, field_name, arg, context=None):
|
def get_full_name(self, cr, uid, ids, field_name, arg, context=None):
|
||||||
return dict(self.name_get(cr, uid, ids, context=context))
|
return dict(self.name_get(cr, uid, ids, context=context))
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Sales Team', size=64, required=True, translate=True),
|
'name': fields.char('Sales Team', size=64, required=True, translate=True),
|
||||||
|
@ -128,17 +129,19 @@ class crm_case_section(osv.osv):
|
||||||
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
|
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
|
||||||
help="The email address associated with this team. New emails received will automatically "
|
help="The email address associated with this team. New emails received will automatically "
|
||||||
"create new leads assigned to the team."),
|
"create new leads assigned to the team."),
|
||||||
'open_lead_ids': fields.one2many('crm.lead', 'section_id', 'Open Leads', readonly=True,
|
'open_lead_ids': fields.one2many('crm.lead', 'section_id',
|
||||||
|
string='Open Leads', readonly=True,
|
||||||
domain=['&', ('type', '!=', 'opportunity'), ('state', 'not in', ['done', 'cancel'])]),
|
domain=['&', ('type', '!=', 'opportunity'), ('state', 'not in', ['done', 'cancel'])]),
|
||||||
'open_opportunity_ids': fields.one2many('crm.lead', 'section_id', 'Open Opportunities', readonly=True,
|
'open_opportunity_ids': fields.one2many('crm.lead', 'section_id',
|
||||||
|
string='Open Opportunities', readonly=True,
|
||||||
domain=['&', '|', ('type', '=', 'opportunity'), ('type', '=', 'both'), ('state', 'not in', ['done', 'cancel'])]),
|
domain=['&', '|', ('type', '=', 'opportunity'), ('type', '=', 'both'), ('state', 'not in', ['done', 'cancel'])]),
|
||||||
'color': fields.integer('Color Index'),
|
'color': fields.integer('Color Index'),
|
||||||
'use_leads': fields.boolean('Leads',
|
'use_leads': fields.boolean('Leads',
|
||||||
help="If checked, this sales team will be available in the sales teams menu and you will be able to manage leads"),
|
help="This enables the management of leads in the sales team. Otherwise the sales team manages only opportunities."),
|
||||||
}
|
}
|
||||||
|
|
||||||
def _get_stage_common(self, cr, uid, context):
|
def _get_stage_common(self, cr, uid, context):
|
||||||
ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default','=',1)], context=context)
|
ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default', '=', 1)], context=context)
|
||||||
return ids
|
return ids
|
||||||
|
|
||||||
_defaults = {
|
_defaults = {
|
||||||
|
|
|
@ -92,9 +92,11 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
return super(crm_lead, self).get_empty_list_help(cr, uid, help, context=context)
|
return super(crm_lead, self).get_empty_list_help(cr, uid, help, context=context)
|
||||||
|
|
||||||
def onchange_user_id(self, cr, uid, ids, section_id, user_id, context=None):
|
def onchange_user_id(self, cr, uid, ids, section_id, user_id, context=None):
|
||||||
|
""" When changing the user, also set a section_id or restrict section id
|
||||||
|
to the ones user_id is member of. """
|
||||||
if user_id:
|
if user_id:
|
||||||
section_ids = self.pool.get('crm.case.section').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context)
|
section_ids = self.pool.get('crm.case.section').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context)
|
||||||
if section_id and len(section_ids) > 0 and section_id not in section_ids:
|
if len(section_ids) > 0 and section_id not in section_ids:
|
||||||
section_id = section_ids[0]
|
section_id = section_ids[0]
|
||||||
return {'value': {'section_id': section_id}}
|
return {'value': {'section_id': section_id}}
|
||||||
|
|
||||||
|
|
|
@ -152,11 +152,12 @@
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="user_id" on_change="onchange_user_id(section_id, user_id)"
|
<field name="user_id" on_change="onchange_user_id(section_id, user_id)"
|
||||||
context="{'default_groups_ref': ['base.group_user', 'base.group_sale_salesman_all_leads']}"/>
|
context="{'default_groups_ref': ['base.group_user', 'base.group_sale_salesman_all_leads'] }"/>
|
||||||
<label for="section_id" groups="base.group_multi_salesteams"/>
|
<label for="section_id" groups="base.group_multi_salesteams"/>
|
||||||
<div groups="base.group_multi_salesteams">
|
<div groups="base.group_multi_salesteams">
|
||||||
<field name="section_id"/>
|
<field name="section_id"/>
|
||||||
<button name="case_escalate" string="Escalate" type="object" attrs="{'invisible': ['|', ('section_id','=',False), ('state', 'not in', ['draft','open','pending'])]}"/>
|
<button name="case_escalate" string="Escalate" type="object"
|
||||||
|
attrs="{'invisible': ['|', ('section_id','=',False), ('state', 'not in', ['draft','open','pending'])]}"/>
|
||||||
</div>
|
</div>
|
||||||
<field name="type" invisible="1"/>
|
<field name="type" invisible="1"/>
|
||||||
</group>
|
</group>
|
||||||
|
|
|
@ -103,7 +103,8 @@
|
||||||
<field name="date"/>
|
<field name="date"/>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<field name="duration" widget="float_time"/>
|
<field name="duration" widget="float_time"/>
|
||||||
<field name="section_id" colspan="1" widget="selection" groups="base.group_multi_salesteams"/>
|
<field name="section_id" colspan="1" widget="selection"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
|
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
|
||||||
<field name="email_from" invisible="1"/> <!--not needed because of the chatter, thus invisible, but must be in the view as it's returned by onchange_partner_id()-->
|
<field name="email_from" invisible="1"/> <!--not needed because of the chatter, thus invisible, but must be in the view as it's returned by onchange_partner_id()-->
|
||||||
<field name="categ_id" widget="selection"
|
<field name="categ_id" widget="selection"
|
||||||
|
@ -187,7 +188,8 @@
|
||||||
help="Phone Calls Assigned to the current user or with a team having the current user as team leader"/>
|
help="Phone Calls Assigned to the current user or with a team having the current user as team leader"/>
|
||||||
<field name="partner_id"/>
|
<field name="partner_id"/>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
|
<field name="section_id" string="Sales Team"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<group expand="0" string="Group By...">
|
<group expand="0" string="Group By...">
|
||||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||||
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||||
|
|
|
@ -33,7 +33,8 @@
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="month"/>
|
<field name="month"/>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<field name="section_id" widget="selection" groups="base.group_multi_salesteams"/>
|
<field name="section_id" widget="selection"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="category2_id" />
|
<field name="category2_id" />
|
||||||
<field name="stage_id"/>
|
<field name="stage_id"/>
|
||||||
<field name="amount_revenue"/>
|
<field name="amount_revenue"/>
|
||||||
|
@ -53,7 +54,8 @@
|
||||||
<graph string="Cases by Teams and Type" type="bar" orientation="horizontal">
|
<graph string="Cases by Teams and Type" type="bar" orientation="horizontal">
|
||||||
<field name="category2_id"/>
|
<field name="category2_id"/>
|
||||||
<field name="amount_revenue" operator="+"/>
|
<field name="amount_revenue" operator="+"/>
|
||||||
<field name="section_id" group="True" groups="base.group_multi_salesteams"/>
|
<field name="section_id" group="True"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
</graph>
|
</graph>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
@ -115,7 +117,8 @@
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="month"/>
|
<field name="month"/>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<field name="section_id" widget="selection" groups="base.group_multi_salesteams"/>
|
<field name="section_id" widget="selection"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="stage_id"/>
|
<field name="stage_id"/>
|
||||||
<field name="amount_revenue"/>
|
<field name="amount_revenue"/>
|
||||||
<field name="nbr" />
|
<field name="nbr" />
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
<field name="channel_id" invisible="1"/>
|
<field name="channel_id" invisible="1"/>
|
||||||
<field name="type" invisible="1"/>
|
<field name="type" invisible="1"/>
|
||||||
<field name="priority" invisible="1"/>
|
<field name="priority" invisible="1"/>
|
||||||
<field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
|
<field name="section_id" invisible="1"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="user_id" invisible="1"/>
|
<field name="user_id" invisible="1"/>
|
||||||
<field name="company_id" invisible="1"/>
|
<field name="company_id" invisible="1"/>
|
||||||
<field name="partner_id" invisible="1"/>
|
<field name="partner_id" invisible="1"/>
|
||||||
|
@ -77,7 +78,8 @@
|
||||||
help="Leads/Opportunities that are assigned to one of the sale teams I manage"/>
|
help="Leads/Opportunities that are assigned to one of the sale teams I manage"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter icon="terp-personal" string="My Case(s)" help="Leads/Opportunities that are assigned to me" domain="[('user_id','=',uid)]"/>
|
<filter icon="terp-personal" string="My Case(s)" help="Leads/Opportunities that are assigned to me" domain="[('user_id','=',uid)]"/>
|
||||||
<field name="section_id" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
|
<field name="section_id" context="{'invisible_section': False}"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="user_id" string="Salesperson"/>
|
<field name="user_id" string="Salesperson"/>
|
||||||
<group expand="0" string="Extended Filters...">
|
<group expand="0" string="Extended Filters...">
|
||||||
<field name="partner_id"/>
|
<field name="partner_id"/>
|
||||||
|
@ -134,7 +136,8 @@
|
||||||
<field name="creation_month" invisible="1"/>
|
<field name="creation_month" invisible="1"/>
|
||||||
<field name="creation_day" invisible="1"/>
|
<field name="creation_day" invisible="1"/>
|
||||||
<field name="deadline_month" invisible="1"/>
|
<field name="deadline_month" invisible="1"/>
|
||||||
<field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
|
<field name="section_id" invisible="1"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="user_id" invisible="1"/>
|
<field name="user_id" invisible="1"/>
|
||||||
<field name="partner_id" invisible="1"/>
|
<field name="partner_id" invisible="1"/>
|
||||||
<field name="country_id" invisible="1"/>
|
<field name="country_id" invisible="1"/>
|
||||||
|
|
|
@ -11,7 +11,8 @@
|
||||||
<tree string="Phone calls" create="false">
|
<tree string="Phone calls" create="false">
|
||||||
<field name="name" invisible="1"/>
|
<field name="name" invisible="1"/>
|
||||||
<field name="month" invisible="1"/>
|
<field name="month" invisible="1"/>
|
||||||
<field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
|
<field name="section_id" invisible="1"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="priority" invisible="1"/>
|
<field name="priority" invisible="1"/>
|
||||||
<field name="user_id" invisible="1"/>
|
<field name="user_id" invisible="1"/>
|
||||||
<field name="company_id" invisible="1"/>
|
<field name="company_id" invisible="1"/>
|
||||||
|
@ -59,7 +60,8 @@
|
||||||
help="Phone calls that are assigned to one of the sale teams I manage"/>
|
help="Phone calls that are assigned to one of the sale teams I manage"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter icon="terp-personal" string="My Phone Calls" help="Phone Calls that are assigned to me" domain="[('user_id','=',uid)]" />
|
<filter icon="terp-personal" string="My Phone Calls" help="Phone Calls that are assigned to me" domain="[('user_id','=',uid)]" />
|
||||||
<field name="section_id" string="Sales Team" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
|
<field name="section_id" string="Sales Team" context="{'invisible_section': False}"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="user_id" string="Salesperson"/>
|
<field name="user_id" string="Salesperson"/>
|
||||||
<group expand="0" string="Extended Filters...">
|
<group expand="0" string="Extended Filters...">
|
||||||
<field name="partner_id"/>
|
<field name="partner_id"/>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<group>
|
<group>
|
||||||
<label for="id" string="Features"/>
|
<label for="id" string="Features"/>
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<field name="module_crm_claim" class="oe_inline"/>
|
<field name="module_crm_claim" class="oe_inline"/>
|
||||||
<label for="module_crm_claim"/>
|
<label for="module_crm_claim"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,8 @@
|
||||||
<tree string="Claims" create="false">
|
<tree string="Claims" create="false">
|
||||||
<field name="name" invisible="1"/>
|
<field name="name" invisible="1"/>
|
||||||
<field name="month" invisible="1"/>
|
<field name="month" invisible="1"/>
|
||||||
<field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
|
<field name="section_id" invisible="1"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="user_id" invisible="1"/>
|
<field name="user_id" invisible="1"/>
|
||||||
<field name="company_id" invisible="1"/>
|
<field name="company_id" invisible="1"/>
|
||||||
<field name="partner_id" invisible="1"/>
|
<field name="partner_id" invisible="1"/>
|
||||||
|
@ -61,7 +62,8 @@
|
||||||
<filter icon="terp-personal" string="My Case(s)" help="My Case(s)" domain="[('user_id','=',uid)]" />
|
<filter icon="terp-personal" string="My Case(s)" help="My Case(s)" domain="[('user_id','=',uid)]" />
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
<field name="user_id" string="Salesperson"/>
|
<field name="user_id" string="Salesperson"/>
|
||||||
<field name="section_id" string="Sales Team" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
|
<field name="section_id" string="Sales Team" context="{'invisible_section': False}"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<group expand="0" string="Extended Filters...">
|
<group expand="0" string="Extended Filters...">
|
||||||
<field name="partner_id"/>
|
<field name="partner_id"/>
|
||||||
<field name="stage_id" domain="[('section_ids', '=', 'section_id')]"/>
|
<field name="stage_id" domain="[('section_ids', '=', 'section_id')]"/>
|
||||||
|
|
|
@ -140,30 +140,31 @@
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="stage_id"/>
|
<field name="stage_id"/>
|
||||||
<button name="stage_previous" string="Previous"
|
<button name="stage_previous" string="Previous"
|
||||||
states="open,pending" type="object" icon="gtk-go-back" />
|
states="open,pending" type="object" icon="gtk-go-back" />
|
||||||
<button name="stage_next" string="Next"
|
<button name="stage_next" string="Next"
|
||||||
states="open,pending" type="object"
|
states="open,pending" type="object"
|
||||||
icon="gtk-go-forward" />
|
icon="gtk-go-forward" />
|
||||||
<field name="section_id"
|
<field name="section_id"
|
||||||
invisible="context.get('invisible_section', True)" groups="base.group_multi_salesteams"/>
|
invisible="context.get('invisible_section', True)"
|
||||||
|
groups="base.group_multi_salesteams"/>
|
||||||
<field name="user_id" />
|
<field name="user_id" />
|
||||||
<field name="state" />
|
<field name="state" />
|
||||||
<button name="case_cancel" string="Cancel"
|
<button name="case_cancel" string="Cancel"
|
||||||
states="draft,open,pending" type="object"
|
states="draft,open,pending" type="object"
|
||||||
icon="gtk-cancel" />
|
icon="gtk-cancel" />
|
||||||
<button name="case_open" string="Open"
|
<button name="case_open" string="Open"
|
||||||
states="draft,pending" type="object"
|
states="draft,pending" type="object"
|
||||||
icon="gtk-go-forward" />
|
icon="gtk-go-forward" />
|
||||||
<button name="case_close" string="Close"
|
<button name="case_close" string="Close"
|
||||||
states="open,draft,pending" type="object"
|
states="open,draft,pending" type="object"
|
||||||
icon="gtk-close" />
|
icon="gtk-close" />
|
||||||
<button string="Convert to Opportunity"
|
<button string="Convert to Opportunity"
|
||||||
name="convert_opportunity"
|
name="convert_opportunity"
|
||||||
states="draft,open,pending" icon="gtk-index"
|
states="draft,open,pending" icon="gtk-index"
|
||||||
type="object" attrs="{'invisible':[('type','=','opportunity')]}" />
|
type="object" attrs="{'invisible':[('type','=','opportunity')]}" />
|
||||||
<button name="case_escalate" string="Escalate"
|
<button name="case_escalate" string="Escalate"
|
||||||
states="open,draft,pending" type="object"
|
states="open,draft,pending" type="object"
|
||||||
icon="gtk-go-up" />
|
icon="gtk-go-up" />
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* 'button' element wich comes with a lot of inappropriate
|
* 'button' element wich comes with a lot of inappropriate
|
||||||
* styling. Entypo is also a headache to center properly
|
* styling. Entypo is also a headache to center properly
|
||||||
* */
|
* */
|
||||||
|
|
||||||
.openerp .oe_topbar_item.oe_topbar_compose_full_email{
|
.openerp .oe_topbar_item.oe_topbar_compose_full_email{
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
width: 32px;
|
width: 32px;
|
||||||
|
|
|
@ -56,11 +56,11 @@
|
||||||
}</field>
|
}</field>
|
||||||
<field name="search_view_id" ref="view_task_search_form"/>
|
<field name="search_view_id" ref="view_task_search_form"/>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p>
|
<p>
|
||||||
OpenERP's project management allows you to manage the pipeline
|
OpenERP's project management allows you to manage the pipeline
|
||||||
of tasks in order to get things done efficiently. You can
|
of tasks in order to get things done efficiently. You can
|
||||||
track progress, discuss on tasks, attach documents, etc.
|
track progress, discuss on tasks, attach documents, etc.
|
||||||
</p>
|
</p>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
@ -626,11 +626,11 @@
|
||||||
<field name="view_mode">kanban,tree,form,calendar,gantt,graph</field>
|
<field name="view_mode">kanban,tree,form,calendar,gantt,graph</field>
|
||||||
<field name="search_view_id" ref="view_task_search_form"/>
|
<field name="search_view_id" ref="view_task_search_form"/>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p>
|
<p>
|
||||||
OpenERP's project management allows you to manage the pipeline
|
OpenERP's project management allows you to manage the pipeline
|
||||||
of tasks in order to get things done efficiently. You can
|
of tasks in order to get things done efficiently. You can
|
||||||
track progress, discuss on tasks, attach documents, etc.
|
track progress, discuss on tasks, attach documents, etc.
|
||||||
</p>
|
</p>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="open_view_task_list_kanban" model="ir.actions.act_window.view">
|
<record id="open_view_task_list_kanban" model="ir.actions.act_window.view">
|
||||||
|
|
|
@ -14,11 +14,11 @@
|
||||||
<field name="domain" eval=""/>
|
<field name="domain" eval=""/>
|
||||||
<field name="search_view_id" ref="view_project_issue_filter"/>
|
<field name="search_view_id" ref="view_project_issue_filter"/>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p>
|
<p>
|
||||||
The OpenERP issues tacker allows you to efficiantly manage things
|
The OpenERP issues tacker allows you to efficiantly manage things
|
||||||
like internal requests, software development bugs, customer
|
like internal requests, software development bugs, customer
|
||||||
complaints, project troubles, material breakdowns, etc.
|
complaints, project troubles, material breakdowns, etc.
|
||||||
</p>
|
</p>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
|
@ -303,15 +303,16 @@
|
||||||
<field name="name">Issues</field>
|
<field name="name">Issues</field>
|
||||||
<field name="view_mode">kanban,tree,form,calendar,graph</field>
|
<field name="view_mode">kanban,tree,form,calendar,graph</field>
|
||||||
<field name="context">{
|
<field name="context">{
|
||||||
'search_default_project_id': [active_id],
|
'search_default_project_id': [active_id],
|
||||||
'default_project_id': active_id
|
'default_project_id': active_id,
|
||||||
}</field>
|
}
|
||||||
|
</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p>
|
<p>
|
||||||
The OpenERP issues tacker allows you to efficiantly manage things
|
The OpenERP issues tacker allows you to efficiantly manage things
|
||||||
like internal requests, software development bugs, customer
|
like internal requests, software development bugs, customer
|
||||||
complaints, project troubles, material breakdowns, etc.
|
complaints, project troubles, material breakdowns, etc.
|
||||||
</p>
|
</p>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
|
@ -328,16 +328,20 @@
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">tree,form,calendar,graph</field>
|
<field name="view_mode">tree,form,calendar,graph</field>
|
||||||
<field name="search_view_id" ref="view_sales_order_filter"/>
|
<field name="search_view_id" ref="view_sales_order_filter"/>
|
||||||
<field name="context">{'show_address': 1, 'search_default_my_sale_orders_filter': 1}</field>
|
<field name="context">{
|
||||||
<field name="domain">[('state','not in',('draft','sent','cancel'))]</field>
|
'show_address': 1,
|
||||||
|
'search_default_my_sale_orders_filter': 1
|
||||||
|
}
|
||||||
|
</field>
|
||||||
|
<field name="domain">[('state', 'not in', ('draft', 'sent', 'cancel'))]</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p class="oe_view_nocontent_create">
|
<p class="oe_view_nocontent_create">
|
||||||
Click to create a quotation that can be converted into a sales
|
Click to create a quotation that can be converted into a sales
|
||||||
order.
|
order.
|
||||||
</p><p>
|
</p><p>
|
||||||
OpenERP will help you efficiently handle the complete sales flow:
|
OpenERP will help you efficiently handle the complete sales flow:
|
||||||
quotation, sales order, delivery, invoicing and payment.
|
quotation, sales order, delivery, invoicing and payment.
|
||||||
</p>
|
</p>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
from openerp.osv import osv, fields
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from openerp.osv import osv, fields
|
||||||
|
|
||||||
|
|
||||||
class sale_order(osv.osv):
|
class sale_order(osv.osv):
|
||||||
|
@ -46,11 +46,14 @@ class crm_case_section(osv.osv):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'quotation_ids': fields.one2many('sale.order', 'section_id', 'Quotations', readonly=True,
|
'quotation_ids': fields.one2many('sale.order', 'section_id',
|
||||||
|
string='Quotations', readonly=True,
|
||||||
domain=[('state', 'in', ['draft', 'sent', 'cancel'])]),
|
domain=[('state', 'in', ['draft', 'sent', 'cancel'])]),
|
||||||
'sale_order_ids': fields.one2many('sale.order', 'section_id', 'Sale Orders', readonly=True,
|
'sale_order_ids': fields.one2many('sale.order', 'section_id',
|
||||||
|
string='Sale Orders', readonly=True,
|
||||||
domain=[('state', 'not in', ['draft', 'sent', 'cancel'])]),
|
domain=[('state', 'not in', ['draft', 'sent', 'cancel'])]),
|
||||||
'invoice_ids': fields.one2many('account.invoice', 'section_id', 'Invoices', readonly=True,
|
'invoice_ids': fields.one2many('account.invoice', 'section_id',
|
||||||
|
string='Invoices', readonly=True,
|
||||||
domain=[('state', 'not in', ['draft', 'cancel'])]),
|
domain=[('state', 'not in', ['draft', 'cancel'])]),
|
||||||
'sum_month_invoice': fields.function(_get_sum_month_invoice,
|
'sum_month_invoice': fields.function(_get_sum_month_invoice,
|
||||||
string='Total invoiced this month',
|
string='Total invoiced this month',
|
||||||
|
|
Loading…
Reference in New Issue