[MERGE] trunk-first_10_clicks_crm-mdi (usability in crm)

bzr revid: rco@openerp.com-20120725150249-aydwrulkbnkfpymp
This commit is contained in:
Raphael Collet 2012-07-25 17:02:49 +02:00
commit 32ea77e355
9 changed files with 48 additions and 31 deletions

View File

@ -941,16 +941,19 @@ class calendar_event(osv.osv):
duration = 1.00
value['duration'] = duration
if allday: # For all day event
value = {'duration': 24.0}
duration = 24.0
if start_date:
start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S")
start_date = datetime.strftime(datetime(start.year, start.month, start.day, 0,0,0), "%Y-%m-%d %H:%M:%S")
value['date'] = start_date
start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S")
if allday: # For all day event
duration = 24.0
value['duration'] = duration
# change start_date's time to 00:00:00 in the user's timezone
user = self.pool.get('res.users').browse(cr, uid, uid)
tz = pytz.timezone(user.context_tz) if user.context_tz else pytz.utc
start = pytz.utc.localize(start).astimezone(tz) # convert start in user's timezone
start = start.replace(hour=0, minute=0, second=0) # change start's time to 00:00:00
start = start.astimezone(pytz.utc) # convert start back to utc
start_date = start.strftime("%Y-%m-%d %H:%M:%S")
value['date'] = start_date
if end_date and not duration:
end = datetime.strptime(end_date, "%Y-%m-%d %H:%M:%S")
diff = end - start

View File

@ -136,7 +136,7 @@
<!-- Calenadar's menu -->
<menuitem id="base.menu_calendar_configuration" name="Calendar"
parent="base.menu_base_config" sequence="50" groups="base.group_sale_manager" />
parent="base.menu_base_config" sequence="50" groups="base.group_no_one"/>
<!-- Invitation menu -->

View File

@ -12,17 +12,11 @@
<field name="context">{'default_type':'lead', 'stage_type':'lead'}</field>
<field name="help">
&lt;img src="http://www.thaicrmsoftware.com/wp-content/uploads/2011/11/lead-conversion.jpg" align="right" style="padding: 6px" width="306" height="223"&gt;
&lt;h2&gt;Create your first OpenERP Lead &lt;/h2&gt;
&lt;p&gt;
Leads allow you to manage and keep track of all initial contacts with a prospect or partner showing interest in your products or services.
&lt;h2&gt;Click here to create a Lead. &lt;/h2&gt;
&lt;p&gt;
A lead is usually the first step in your sales cycle.
&lt;p&gt;
Once qualified, a lead may be converted into a business opportunity, while creating the related partner for further detailed tracking of any linked activities.
&lt;p&gt;
You can import a database of prospects, keep track of your business cards or integrate your website's contact form with the OpenERP Leads.
&lt;p&gt;
Leads can be connected to the email gateway: new emails may create leads, each of them automatically gets the history of the conversation with the prospect.
</field>
</record>

View File

@ -67,7 +67,7 @@
<field name="help">Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle.</field>
</record>
<menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages" sequence="0" parent="base.menu_crm_config_lead" />
<menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages" sequence="0" parent="base.menu_crm_config_lead" groups="base.group_no_one"/>
<!--
LEADS/OPPORTUNITIES CATEGORIES
@ -145,7 +145,7 @@
<group>
<group>
<field name="user_id" />
<field name="section_id" widget="selection" />
<field name="section_id"/>
<field name="type" invisible="1"/>
</group>
<group>
@ -234,6 +234,7 @@
<field name="phone"/>
<field name="stage_id"/>
<field name="categ_id" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="section_id" invisible="context.get('invisible_section', True)" />
<field name="state" groups="base.group_no_one"/>
<field name="type_id" invisible="1"/>
@ -431,9 +432,9 @@
<form string="Opportunities" version="7.0">
<header>
<button name="stage_previous" string="Previous" type="object"
states="open" icon="gtk-go-back" context="{'stage_type': 'opportunity'}"/>
states="open" context="{'stage_type': 'opportunity'}"/>
<button name="stage_next" string="Next" type="object"
states="open" icon="gtk-go-forward" context="{'stage_type': 'opportunity'}"/>
states="open" context="{'stage_type': 'opportunity'}"/>
<button name="case_mark_won" string="Mark Won" type="object"
states="open" class="oe_highlight"/>
<button name="case_mark_won" string="Mark Won" type="object"
@ -483,7 +484,7 @@
<group>
<label for="title_action"/>
<div>
<field name="date_action" nolabel="1"/> -
<field name="date_action" nolabel="1"/> <label string="-" attrs="{'invisible': ['|', ('date_action', '=', False), ('title_action', '=', False)]}"/>
<field name="title_action" class="oe_inline" nolabel="1" placeholder="Call for proposal"/>
</div>
<field name="date_deadline"/>

View File

@ -41,7 +41,7 @@ class crm_phonecall(base_state, osv.osv):
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
select=True, help='Sales team to which Case belongs to.'),
'user_id': fields.many2one('res.users', 'Responsible'),
'partner_id': fields.many2one('res.partner', 'Partner'),
'partner_id': fields.many2one('res.partner', 'Contact'),
'company_id': fields.many2one('res.company', 'Company'),
'description': fields.text('Description'),
'state': fields.selection([ ('draft', 'Draft'),

View File

@ -68,7 +68,13 @@
<field name="domain">[]</field>
<field name="context">{}</field>
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
<field name="help">This tool allows you to log your inbound calls on the fly. Each call you get will appear on the partner form to trace every contact you have with a partner. From the phone call form, you can trigger a request for another call, a meeting or an opportunity.</field>
<field name="help">
Click on "Create" to log a new call.
&lt;p&gt;
This tool allows you to log your calls on the fly.
&lt;p&gt;
From this feature, you can trigger a request for another call, a meeting or an opportunity.
</field>
</record>
@ -106,7 +112,13 @@
<field name="domain">[('state','!=','done')]</field>
<field name="context" eval="'{\'default_state\':\'open\'}'"/>
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
<field name="help">Scheduled calls list all the calls to be done by your sales team. A salesman can record the information about the call in the form view. This information will be stored in the partner form to trace every contact you have with a customer. You can also import a .CSV file with a list of calls to be done by your sales team.</field>
<field name="help">
Click here to schedule a new call.
&lt;p&gt;
Scheduled calls list all the calls to be done by your sales team.
&lt;p&gt;
This information will be stored in the partner form to trace every contact you have with a customer.
</field>
</record>
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_phone_outgoing0">

View File

@ -137,7 +137,7 @@
<field name="user_id" />
<field name="duration" widget="float_time" />
<field name="section_id" colspan="1" widget="selection" />
<field name="partner_id" on_change="onchange_partner_id(partner_id)" />
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="categ_id" widget="selection"
domain="[('object_id.model', '=', 'crm.phonecall')]"/>
<field name="partner_mobile" />
@ -165,8 +165,7 @@
<field name="date"/>
<field name="name"/>
<field name="partner_id"
on_change="onchange_partner_id(partner_id)"
string="Partner" />
on_change="onchange_partner_id(partner_id)"/>
<field name="partner_phone"
invisible="1"/>
<field name="user_id"/>

View File

@ -11,7 +11,7 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="user_id" position="after">
<field name="section_id" completion="1" widget="selection"/>
<field name="section_id" completion="1"/>
</field>
</field>
</record>
@ -24,7 +24,7 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="phone" position="after">
<field name="section_id" completion="1" widget="selection"/>
<field name="section_id" completion="1" invisible="context.get('invisible_section', True)"/>
</field>
</field>
</record>
@ -37,11 +37,16 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="category_id" position="after">
<field name="section_id" completion="1" widget="selection"/>
<field name="section_id" completion="1" widget="selection" context="{'invisible_section': False}"/>
</field>
<xpath expr="//field[@name='user_id']" position="after">
<field name="country_id"/>
</xpath>
<xpath expr="//group[@string='Group By...']" position="after">
<group string="Display">
<filter string="Show Sales Team" context="{'invisible_section': False}"/>
</group>
</xpath>
</field>
</record>

View File

@ -11,6 +11,9 @@
<field name="property_product_pricelist" position="after">
<field name="property_product_pricelist_purchase" />
</field>
<field name="supplier" position="replace">
<field name="supplier"/>
</field>
</field>
</record>