[MERGE] merge with main branch
bzr revid: mra@mra-laptop-20100719123815-rb6x1hn2ajjxt81o
This commit is contained in:
@@ -8,8 +8,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Setup">
|
||||
<group colspan="4" col="8">
|
||||
<group colspan="3" width="200">
|
||||
<field name="config_logo" widget="image" width="150" height="100" nolabel="1" colspan="1"/>
|
||||
<group colspan="3" width="220">
|
||||
<field name="config_logo" widget="image" width="220" height="130" nolabel="1" colspan="1"/>
|
||||
<newline/>
|
||||
<label align="0.0" string="You can start configuring the system or connect directly to the database as an administrator." width="200" colspan="2"/>
|
||||
</group>
|
||||
|
||||
@@ -115,9 +115,7 @@ class crm_lead(osv.osv, crm_case):
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
|
||||
select=True, help='Sales team to which this case belongs to. Defines responsible user and e-mail address for the mail gateway.'),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These \
|
||||
addresses(Comma-separated) will receive a copy of the future e-mail communication between partner \
|
||||
and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'description': fields.text('Notes'),
|
||||
'write_date': fields.datetime('Update Date' , readonly=True),
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<field name="context">{"search_default_user_id":uid,'search_default_current':1}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
|
||||
<field name="context">{'search_default_current':1, 'default_type': 'lead'}</field>
|
||||
<field name="help">A lead is a first, unqualified, contact with a new prospect. Use leads when you import a database of prospects or integrate your website's contact form with OpenERP. After having been qualified, the lead can be converted to a partner and a business opportunity for a further detailed tracking of the related activities.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_leads_all">
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
<field name="view_id" ref="crm_case_calendar_view_meet"/>
|
||||
<field name="context">{"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_meetings_filter"/>
|
||||
<field name="help">The calendar of meetings is shared between sales teams and fully integrated with the others applications like the employee holidays. You can also synchronize meetings with your mobile phone using the caldav interface.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_calendar_meet">
|
||||
|
||||
@@ -150,6 +150,19 @@ class crm_opportunity(osv.osv):
|
||||
return {'value':{}}
|
||||
return {'value':{'probability': stage.probability}}
|
||||
|
||||
def onchange_assign_id(self, cr, uid, ids, partner_assigned_id, context={}):
|
||||
"""This function updates the "assignation date" automatically, when manually assign a partner in the geo assign tab
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of stage’s IDs
|
||||
@stage_id: change state id on run time """
|
||||
|
||||
if not partner_assigned_id:
|
||||
return {'value':{'date_assign': False}}
|
||||
else:
|
||||
return {'value':{'date_assign': time.strftime('%Y-%m-%d')}}
|
||||
|
||||
_defaults = {
|
||||
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c),
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
<field name="context">{'search_default_user_id':uid,'search_default_current':1, 'default_type': 'opportunity'}</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_oppor"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
|
||||
<field name="help">Opportunities allows you to track your best deals pipeline: history of the communication, expected revenues, stage of each opportunity, excepted closings, etc. Opportunities are usually connected with the email gateway: new emails may create opportunities and each opportunity automatically gets the history of the conversation with the customer.
|
||||
Your teams will be able to plan meeting and phonecalls from opportunities, to convert opportunities into quotations, to manage documents related to the opportunity, to track all activities related to this customer, etc.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_oppor11">
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
<field name="planned_revenue"/>
|
||||
<field name="probability"/>
|
||||
<field name="date_deadline" string="Expected Closing"/>
|
||||
<button string="Schedule Call"
|
||||
name="%(opportunity2phonecall_act)d" icon="gtk-redo" type="action" />
|
||||
<button string="Schedule/Log Call"
|
||||
name="%(opportunity2phonecall_act)d" icon="terp-call-start" type="action" />
|
||||
<newline/>
|
||||
<field name="date_action"/>
|
||||
<field name="title_action"/>
|
||||
@@ -182,7 +182,7 @@
|
||||
<page string="Assignation" groups="base.group_extended">
|
||||
<group name="partner_assign_group" col="5" colspan="4">
|
||||
<separator string="Partner Assignation" colspan="5"/>
|
||||
<field name="partner_assigned_id"/>
|
||||
<field name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)"/>
|
||||
<field name="date_assign"/>
|
||||
<group colspan="1" col="1">
|
||||
<button string="Forward"
|
||||
@@ -214,6 +214,7 @@
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)" />
|
||||
<field name="date_action"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="partner_assigned_id" invisible="1"/>
|
||||
<button name="stage_previous" string="Previous Stage"
|
||||
states="open,pending" type="object" icon="gtk-go-back" />
|
||||
<button name="stage_next" string="Next Stage"
|
||||
@@ -328,11 +329,12 @@
|
||||
context="{'group_by':'priority'}" />
|
||||
<filter string="Category" icon="terp-stock_symbol-selection"
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Salesman" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Team" help="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}"/>
|
||||
<filter string="Assigned Partner" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'partner_assigned_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Creation" icon="terp-go-month"
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
domain="[('partner_id', '=', active_id)]"
|
||||
groups="base.group_extended"
|
||||
/>
|
||||
|
||||
|
||||
<act_window
|
||||
id="act_crm_phonecall_crm_meeting_new"
|
||||
name="Meetings"
|
||||
@@ -69,6 +69,8 @@
|
||||
<field name="domain" eval="'[(\'categ_id\',\'=\','+str(ref('categ_phone1'))+')]'"/>
|
||||
<field name="context" eval="'{\'set_editable\':True,\'default_state\':\'open\', \'search_default_current\':1,\'search_default_today\':1, \'default_categ_id\': ' + str(ref('categ_phone1')) +'}'"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
<field name="help">Trace easily all your Inbound calls. The Inbound menu open a search view in editable mode, so you can easily modify or add a new call record. With the actions buttons convert a lead into an opportunity or plan a meeting.</field>
|
||||
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_phone_incoming0">
|
||||
@@ -105,6 +107,7 @@
|
||||
<field name="domain" eval="'[(\'categ_id\',\'=\','+str(ref('categ_phone2'))+')]'"/>
|
||||
<field name="context" eval="'{\'default_state\':\'open\', \'search_default_current\':1, \'default_categ_id\': ' + str(ref('categ_phone2')) +'}'"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
<field name="help">The Outbound menu open a search view in editable mode, so you can easily modify or plan a new call. Actions buttons allows you to to make you call status evolved for a better follow up of your planned calls. During calls, convert your lead into an opportunity, plan a meeting or canceled it.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_phone_outgoing0">
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
<field name="partner_contact"/>
|
||||
<field name="partner_phone"/>
|
||||
<field name="user_id"/>
|
||||
<field name="categ_id" string="Type"/>
|
||||
<button string="Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
states="draft,open,pending"
|
||||
@@ -107,6 +108,9 @@
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Categorization" />
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
<field name="priority"/>
|
||||
<field name="opportunity_id"/>
|
||||
</group>
|
||||
@@ -182,6 +186,9 @@
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Categorization" />
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
<field name="priority"/>
|
||||
<field name="opportunity_id"/>
|
||||
</group>
|
||||
@@ -209,6 +216,9 @@
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
|
||||
<field name="partner_phone"/>
|
||||
<field name="user_id"/>
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="create_date" invisible="1"/>
|
||||
<button string="Opportunity"
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Leads by user and section Search View -->
|
||||
|
||||
<record id="view_report_crm_lead_filter" model="ir.ui.view">
|
||||
@@ -188,6 +188,7 @@
|
||||
<field name="context">{'search_default_lead':1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="domain">[('type', '=', 'lead')]</field>
|
||||
<field name="help">Leads Analysis allows you to consult different informations relative to CRM. Check for treatments delays, number of responses given and emails send. You can sort out your leads analysis on different groups to get fine grained analysis.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_lead_tree">
|
||||
@@ -211,6 +212,7 @@
|
||||
<field name="context">{"search_default_opportunity": 1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="domain">[('type', '=', 'opportunity')]</field>
|
||||
<field name="help">Opportunities Analysis menu gives you an instant access to your opportunities like expected revenue, planned cost, overpassed deadline or the number of exchanges by opportunity.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_opportunity_tree">
|
||||
|
||||
@@ -171,6 +171,7 @@
|
||||
<field name="context">{"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_id" ref="view_report_crm_phonecall_tree"/>
|
||||
<field name="search_view_id" ref="view_report_crm_phonecall_filter"/>
|
||||
<field name="help">Get an anlysis of Phone Calls number and delay to close, stage, user suits to different groups for a global or a fine grained analysis.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_phonecall_tree">
|
||||
|
||||
@@ -79,6 +79,7 @@ class crm_lead2opportunity(osv.osv_memory):
|
||||
'probability': this.probability,
|
||||
'name': this.name,
|
||||
'partner_id': this.partner_id.id,
|
||||
'user_id': this.partner_id.user_id.id or lead.user_id.id,
|
||||
'type': 'opportunity'
|
||||
}
|
||||
lead_obj.write(cr, uid, lead.id, vals, context=context)
|
||||
|
||||
@@ -110,7 +110,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
||||
'categ_id' : categ_id,
|
||||
'description' : opp.description or False,
|
||||
'date' : this.date,
|
||||
'section_id' : opp.section_id and opp.section_id.id or False,
|
||||
'section_id' : this.section_id.id or opp.section_id.id or False,
|
||||
'partner_id': opp.partner_id and opp.partner_id.id or False,
|
||||
'partner_address_id': opp.partner_address_id and opp.partner_address_id.id or False,
|
||||
'partner_phone' : opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False),
|
||||
|
||||
@@ -48,7 +48,7 @@ class crm_send_new_email(osv.osv_memory):
|
||||
'email_to' : fields.char('To', size=512, required=True),
|
||||
'email_from' : fields.char('From', size=128, required=True),
|
||||
'reply_to' : fields.char('Reply To', size=128, required=True, help="Reply-to of the Sales team defined on this case"),
|
||||
'email_cc' : fields.char('CC', size=512, help="Carbon Copy: list of recipients that will receive a copy of this mail"),
|
||||
'email_cc' : fields.char('CC', size=512, help="These addresses will receive a copy of this email. To modify the permanent CC list, edit the global CC field of this case"),
|
||||
'subject': fields.char('Subject', size=512, required=True),
|
||||
'body': fields.text('Message Body', required=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, string='Set New State To', required=True),
|
||||
|
||||
@@ -75,7 +75,7 @@ class crm_claim(osv.osv, crm.crm_case):
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
# domain="[('partner_id','=',partner_id)]"
|
||||
),
|
||||
'email_cc': fields.text('Watchers Emails', size=252, help="These addresses(Comma-separated) will receive a copy of the future communication between partner and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'partner_name': fields.char("Employee's Name", size=64),
|
||||
'partner_mobile': fields.char('Mobile', size=32),
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<field name="view_id" ref="crm_case_claims_tree_view"/>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_current":1,"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="crm_claim.view_crm_case_claims_filter"/>
|
||||
<field name="help">Record and trace your customers' claims here. A claim is defined by a client name, several types, a status and a priority level. A claim can also be a preventive or repairing action. A claim can be linked to a reference like a sales order, or a lot. You can send emails with attachments and get the history of the claim treatment (emails send, interventions type, etc.). </field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_claim0">
|
||||
|
||||
@@ -46,7 +46,7 @@ class crm_fundraising(osv.osv, crm.crm_case):
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
domain="[('partner_id','=',partner_id)]"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These addresses(Comma-separated) will receive a copy of the future communication between partner and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date': fields.datetime('Date'),
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<field name="view_id" ref="crm_fundraising.crm_case_tree_view_fund"/>
|
||||
<field name="context">{"search_default_user_id":uid,"search_default_current":1}</field>
|
||||
<field name="search_view_id" ref="crm_fundraising.view_crm_case_fund_filter"/>
|
||||
<field name="help">When you wish to support your organization or a campaign, trace here all your activities for collecting money. The menu open a search list where you can find funds description, email, history, probability of success. Several actions buttons allows you to easily modify your different fund status.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_fund_all1">
|
||||
|
||||
@@ -181,10 +181,10 @@
|
||||
<field name="context">{"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_id" ref="view_report_crm_fundraising_tree"/>
|
||||
<field name="search_view_id" ref="view_report_crm_fundraising_filter"/>
|
||||
<field name="help">With Fund Raising get at a glance a view to your fund raising campaigns with the estimated revenue, average probability and delay to close.</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_fundrising_tree">
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_fundrising_tree">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_report_crm_fundraising_tree"/>
|
||||
|
||||
@@ -49,7 +49,7 @@ class crm_helpdesk(osv.osv, crm.crm_case):
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
domain="[('partner_id','=',partner_id)]"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These addresses(Comma-separated) will receive a copy of the future communication between partner and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'date': fields.datetime('Date'),
|
||||
'ref' : fields.reference('Reference', selection=crm._links_get, size=128),
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<field name="view_id" ref="crm_case_tree_view_helpdesk"/>
|
||||
<field name="context">{"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_helpdesk_filter"/>
|
||||
<field name="help">Alike records and processing of claims, Helpdesk and Support is a good tool to trace your interventions. This menu is more adapted to an oral communication, which is not necessarily related to a claim. Select a customer, add notes and categorize your interventions with a channel and a priority level.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_sec_tree_view_act111">
|
||||
|
||||
@@ -163,6 +163,7 @@
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="view_id" ref="view_report_crm_helpdesk_tree"/>
|
||||
<field name="search_view_id" ref="view_report_crm_helpdesk_filter"/>
|
||||
<field name="help">Helpdesk allows you to consult different informations relative to support demands. Check for treatments delays, number of responses given and emails send and costs. You can sort out your analysis on different groups to get fine grained analysis.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_helpdesk_tree">
|
||||
|
||||
@@ -317,6 +317,8 @@
|
||||
<field name="res_model">ir.attachment</field>
|
||||
<field name="name">Document</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="search_view_id" ref="view_attach_filter"/>
|
||||
<field name="help">Documents give your access to all attached documents; it's a repository of all attached documents (mails, documents attached to a project, etc.)</field>
|
||||
</record>
|
||||
<menuitem name="Documents" id="menu_document_doc" parent="knowledge.menu_document" sequence="0"/>
|
||||
<menuitem
|
||||
|
||||
@@ -300,7 +300,7 @@ class event_registration(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Summary', size=124, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'email_cc': fields.text('CC', size=252 , readonly=False, states={'done': [('readonly', True)]}, help="These people will receive a copy of the future communication between partner and users by email"),
|
||||
'email_cc': fields.text('CC', size=252 , readonly=False, states={'done': [('readonly', True)]}, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'nb_register': fields.integer('Quantity', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Number of Registrations or Tickets"),
|
||||
'event_id': fields.many2one('event.event', 'Event Related', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
"partner_invoice_id": fields.many2one('res.partner', 'Partner Invoiced', readonly=True, states={'draft': [('readonly', False)]}),
|
||||
|
||||
@@ -72,9 +72,7 @@ class hr_applicant(osv.osv, crm.crm_case):
|
||||
select=True, help='Sales team to which Case belongs to.\
|
||||
Define Responsible user and Email account for mail gateway.'),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These people\
|
||||
will receive a copy of the future" \
|
||||
" communication between partner and users by email"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'probability': fields.float('Probability'),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
|
||||
@@ -475,7 +475,7 @@ class mailgate_tool(osv.osv_memory):
|
||||
'partner_id': False
|
||||
}
|
||||
from_email = self.to_email(from_email)[0]
|
||||
address_ids = address_pool.search(cr, uid, [('email', '=', from_email)])
|
||||
address_ids = address_pool.search(cr, uid, [('email', 'like', from_email)])
|
||||
if address_ids:
|
||||
address = address_pool.browse(cr, uid, address_ids[0])
|
||||
res['partner_address_id'] = address_ids[0]
|
||||
|
||||
@@ -192,6 +192,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
<field name="search_view_id" ref="product_search_form_view"/>
|
||||
<field name="help">In OpenERP, a product is something you can buy and sell. It can be a raw material, a stockable product, a consumable or a service. The product form contains a detailed information on the products like procurement logistic, sales price, product category, suppliers, etc.</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
|
||||
@@ -250,6 +251,7 @@
|
||||
<field name="domain">[('parent_id','=',False)]</field>
|
||||
<field name="view_type">tree</field>
|
||||
<field name="view_id" ref="product_category_tree_view"/>
|
||||
<field name="help">Products category opens a tree structure view of your products by category.</field>
|
||||
</record>
|
||||
<menuitem
|
||||
action="product_category_action"
|
||||
@@ -488,7 +490,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Product Variant">
|
||||
<field name="product_tmpl_id" select="1"/>
|
||||
<field name="product_tmpl_id" select="1"/>
|
||||
<field name="active" select="1"/>
|
||||
<field name="variants" select="1"/>
|
||||
<field name="default_code" select="1"/>
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import pooler
|
||||
import datetime
|
||||
|
||||
def timeformat_convert(cr, uid, time_string):
|
||||
# Function to convert input time string:: 8.5 to output time string 8:30
|
||||
split_list = str(time_string).split('.')
|
||||
hour_part = split_list[0]
|
||||
mins_part = split_list[1]
|
||||
round_mins = int(round(float(mins_part) * 60,-2))
|
||||
converted_string = hour_part + ':' + str(round_mins)[0:2]
|
||||
return converted_string
|
||||
|
||||
def leaves_resource(cr, uid, calendar_id, resource_id=False, resource_calendar=False):
|
||||
# To get the leaves for the resource_ids working on phase
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
resource_leaves_pool = pool.get('resource.calendar.leaves')
|
||||
leaves = []
|
||||
if resource_id:
|
||||
resource_leave_ids = resource_leaves_pool.search(cr, uid, ['|',('calendar_id','=',calendar_id),('calendar_id','=',resource_calendar),('resource_id','=',resource_id)])
|
||||
else:
|
||||
resource_leave_ids = resource_leaves_pool.search(cr, uid, [('calendar_id','=',calendar_id),('resource_id','=',False)])
|
||||
res_leaves = resource_leaves_pool.read(cr, uid, resource_leave_ids, ['date_from','date_to'])
|
||||
for leave in range(len(res_leaves)):
|
||||
dt_start = datetime.datetime.strptime(res_leaves[leave]['date_from'],'%Y-%m-%d %H:%M:%S')
|
||||
dt_end = datetime.datetime.strptime(res_leaves[leave]['date_to'],'%Y-%m-%d %H:%M:%S')
|
||||
no = dt_end - dt_start
|
||||
[leaves.append((dt_start + datetime.timedelta(days=x)).strftime('%Y-%m-%d')) for x in range(int(no.days + 1))]
|
||||
leaves.sort()
|
||||
return leaves
|
||||
|
||||
def compute_working_calendar(cr, uid, calendar_id):
|
||||
# To change the format of working calendar to bring it into 'faces' format
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
resource_week_pool = pool.get('resource.calendar.week')
|
||||
time_range = "8:00-8:00"
|
||||
non_working = ""
|
||||
wk = {"0":"mon", "1":"tue", "2":"wed", "3":"thu", "4":"fri", "5":"sat", "6":"sun"}
|
||||
wk_days = {}
|
||||
wk_time = {}
|
||||
wktime_list = []
|
||||
wktime_cal = []
|
||||
week_ids = resource_week_pool.search(cr, uid, [('calendar_id','=',calendar_id)])
|
||||
week_obj = resource_week_pool.read(cr, uid, week_ids, ['dayofweek', 'hour_from', 'hour_to'])
|
||||
|
||||
# Converting time formats into appropriate format required
|
||||
# and creating a list like [('mon', '8:00-12:00'), ('mon', '13:00-18:00')]
|
||||
for week in week_obj:
|
||||
res_str = ""
|
||||
if wk.has_key(week['dayofweek']):
|
||||
day = wk[week['dayofweek']]
|
||||
wk_days[week['dayofweek']] = wk[week['dayofweek']]
|
||||
|
||||
hour_from_str = timeformat_convert(cr, uid, week['hour_from'])
|
||||
hour_to_str = timeformat_convert(cr, uid, week['hour_to'])
|
||||
res_str = hour_from_str + '-' + hour_to_str
|
||||
wktime_list.append((day,res_str))
|
||||
|
||||
# Converting it to format like [('mon', '8:00-12:00', '13:00-18:00')]
|
||||
for item in wktime_list:
|
||||
if wk_time.has_key(item[0]):
|
||||
wk_time[item[0]].append(item[1])
|
||||
else:
|
||||
wk_time[item[0]] = [item[0]]
|
||||
wk_time[item[0]].append(item[1])
|
||||
|
||||
for k,v in wk_time.items():
|
||||
wktime_cal.append(tuple(v))
|
||||
|
||||
# For non working days adding [('tue,wed,fri,sat,sun', '8:00-8:00')]
|
||||
for k,v in wk_days.items():
|
||||
if wk.has_key(k):
|
||||
wk.pop(k)
|
||||
for v in wk.itervalues():
|
||||
non_working += v + ','
|
||||
if non_working:
|
||||
wktime_cal.append((non_working[:-1],time_range))
|
||||
|
||||
return wktime_cal
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -159,9 +159,7 @@ class project_issue(osv.osv, crm.crm_case):
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'email_cc': fields.char('Watchers Emails', size=256, help="These people\
|
||||
will receive a copy of the future" \
|
||||
" communication between partner and users by email"),
|
||||
'email_cc': fields.char('Watchers Emails', size=256, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'date_open': fields.datetime('Opened', readonly=True),
|
||||
# Project Issue fields
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
<field name="res_model">project.resource.allocation</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">gantt,tree,form</field>
|
||||
<field name="context">{'search_default_resource': 1} </field>
|
||||
<field name="context">{}</field>
|
||||
<!--<field name="search_view_id" ref="view_project_phase_search"/>-->
|
||||
</record>
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
-
|
||||
!record {model: project.task, id: project_task_t00}:
|
||||
name: t1
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 20.0
|
||||
remaining_hours: 20.0
|
||||
state: draft
|
||||
@@ -50,7 +49,6 @@
|
||||
-
|
||||
!record {model: project.task, id: project_task_t11}:
|
||||
name: t2
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 25.0
|
||||
remaining_hours: 25.0
|
||||
state: draft
|
||||
@@ -62,7 +60,6 @@
|
||||
-
|
||||
!record {model: project.task, id: project_task_t22}:
|
||||
name: t3
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 30.0
|
||||
remaining_hours: 30.0
|
||||
state: draft
|
||||
@@ -75,7 +72,6 @@
|
||||
-
|
||||
!record {model: project.task, id: project_task_t33}:
|
||||
name: t4
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 25.0
|
||||
remaining_hours: 25.0
|
||||
state: draft
|
||||
@@ -105,4 +101,4 @@
|
||||
prj=self.browse(cr, uid, [ref("project_project_project1")])[0]
|
||||
for task in prj.tasks:
|
||||
if (not task.user_id) or (not task.date_start) or (not task.date_end):
|
||||
raise AssertionError("Project Tasks not scheduled")
|
||||
raise AssertionError("Project Tasks not scheduled")
|
||||
|
||||
@@ -81,7 +81,7 @@ def compute_working_calendar(cr, uid, calendar_id, context=None):
|
||||
"""
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
resource_week_obj = pool.get('resource.calendar.week')
|
||||
resource_attendance_obj = pool.get('resource.calendar.attendance')
|
||||
time_range = "8:00-8:00"
|
||||
non_working = ""
|
||||
week_days = {"0": "mon", "1": "tue", "2": "wed","3": "thu", "4": "fri", "5": "sat", "6": "sun"}
|
||||
@@ -89,8 +89,8 @@ def compute_working_calendar(cr, uid, calendar_id, context=None):
|
||||
wk_time = {}
|
||||
wktime_list = []
|
||||
wktime_cal = []
|
||||
week_ids = resource_week_obj.search(cr, uid, [('calendar_id', '=', calendar_id)], context=context)
|
||||
weeks = resource_week_obj.read(cr, uid, week_ids, ['dayofweek', 'hour_from', 'hour_to'], context=context)
|
||||
week_ids = resource_attendance_obj.search(cr, uid, [('calendar_id', '=', calendar_id)], context=context)
|
||||
weeks = resource_attendance_obj.read(cr, uid, week_ids, ['dayofweek', 'hour_from', 'hour_to'], context=context)
|
||||
# Convert time formats into appropriate format required
|
||||
# and create a list like [('mon', '8:00-12:00'), ('mon', '13:00-18:00')]
|
||||
for week in weeks:
|
||||
|
||||
+377
-377
File diff suppressed because it is too large
Load Diff
+377
-377
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+368
-368
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+380
-378
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+310
-310
File diff suppressed because it is too large
Load Diff
+379
-379
File diff suppressed because it is too large
Load Diff
+757
-757
File diff suppressed because it is too large
Load Diff
+264
-266
@@ -1,6 +1,6 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * scrum
|
||||
# * project_scrum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
@@ -16,624 +16,622 @@ msgstr ""
|
||||
"X-Launchpad-Export-Date: 2010-06-22 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.product.backlog:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.product.backlog:0
|
||||
msgid "Scrum Product backlog"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.meeting,name:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,name:0
|
||||
msgid "Meeting Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:process.transition,note:scrum.process_transition_backlogtask0
|
||||
#. module: project_scrum
|
||||
#: model:process.transition,note:project_scrum.process_transition_backlogtask0
|
||||
msgid "From backlog create task."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_view_task4
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_view_task4
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_view_task4
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_view_task4
|
||||
msgid "My tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_open_tree6
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_sprint_open_tree6
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_open_tree6
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_sprint_open_tree6
|
||||
msgid "My opened sprints (Product Owner)"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:process.node,note:scrum.process_node_productbacklog0
|
||||
#. module: project_scrum
|
||||
#: model:process.node,note:project_scrum.process_node_productbacklog0
|
||||
msgid "Create task from backlogs"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#. module: project_scrum
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.module.module,shortdesc:scrum.module_meta_information
|
||||
#. module: project_scrum
|
||||
#: model:ir.module.module,shortdesc:project_scrum.module_meta_information
|
||||
msgid "Scrum, Agile Development Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,progress_rate:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,progress_rate:0
|
||||
msgid "Progress"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.task,remaining_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.task,remaining_hours:0
|
||||
msgid ""
|
||||
"Total remaining time, can be re-estimated periodically by the assignee of "
|
||||
"the task."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,child_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,child_id:0
|
||||
msgid "Subproject"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.meeting:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.meeting:0
|
||||
msgid "What have you accomplished since yesterday ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.meeting:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.meeting:0
|
||||
msgid "Are your Sprint Backlog estimate accurate ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,members:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,members:0
|
||||
msgid "Project Members"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.project:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.project:0
|
||||
msgid "Scrum Projects"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,child_ids:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,child_ids:0
|
||||
msgid "Delegated Tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,warn_header:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,warn_header:0
|
||||
msgid ""
|
||||
"Header added at the beginning of the email for the warning message sent to "
|
||||
"the customer when a task is closed."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,priority:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,priority:0
|
||||
msgid "Importance"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.model,name:scrum.model_scrum_task
|
||||
#. module: project_scrum
|
||||
#: model:ir.model,name:project_scrum.model_scrum_task
|
||||
msgid "Scrum Task"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.dblc_proj
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.dblc_proj
|
||||
msgid "View project's backlog"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,members:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,members:0
|
||||
msgid ""
|
||||
"Project's member. Not used in any computation, just for information purpose."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: selection:scrum.product.backlog,priority:0
|
||||
#: selection:scrum.task,priority:0
|
||||
#. module: project_scrum
|
||||
#: selection:project.scrum.product.backlog,priority:0
|
||||
#: selection:project.scrum.task,priority:0
|
||||
msgid "Very urgent"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.sprint,retrospective:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.sprint,retrospective:0
|
||||
msgid "Sprint Retrospective"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.sprint,name:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.sprint,name:0
|
||||
msgid "Sprint Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.task,planned_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.task,planned_hours:0
|
||||
msgid ""
|
||||
"Estimated time to do the task, usually set by the project manager when the "
|
||||
"task is in draft state."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,notes:0
|
||||
#: field:scrum.task,notes:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,notes:0
|
||||
#: field:project.scrum.task,notes:0
|
||||
msgid "Notes"
|
||||
msgstr "Anteckningar"
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.model,name:scrum.model_scrum_product_backlog
|
||||
#: field:scrum.task,product_backlog_id:0
|
||||
#. module: project_scrum
|
||||
#: model:ir.model,name:project_scrum.model_scrum_product_backlog
|
||||
#: field:project.scrum.task,product_backlog_id:0
|
||||
msgid "Product Backlog"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.sprint,project_id:0
|
||||
#: field:scrum.task,project_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.sprint,project_id:0
|
||||
#: field:project.scrum.task,project_id:0
|
||||
msgid "Project"
|
||||
msgstr "Projekt"
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,warn_manager:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,warn_manager:0
|
||||
msgid ""
|
||||
"If you check this field, the project manager will receive a request each "
|
||||
"time a task is completed by his team."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: selection:scrum.project,state:0
|
||||
#: selection:scrum.task,state:0
|
||||
#. module: project_scrum
|
||||
#: selection:project.scrum.project,state:0
|
||||
#: selection:project.scrum.task,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.team,name:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.team,name:0
|
||||
msgid "Team Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,warn_header:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,warn_header:0
|
||||
msgid "Mail Header"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,sprint_size:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,sprint_size:0
|
||||
msgid "Sprint Days"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.sprint,date_stop:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.sprint,date_stop:0
|
||||
msgid "Ending Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.task,effective_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.task,effective_hours:0
|
||||
msgid "Computed using the sum of the task work done."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,warn_customer:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,warn_customer:0
|
||||
msgid ""
|
||||
"If you check this, the user will have a popup when closing a task that "
|
||||
"propose a message to send by email to the customer."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_task_open
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_task_open
|
||||
msgid "View sprint Tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,category_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,category_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_view_task
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_view_task
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_view_task
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_view_task
|
||||
msgid "All Tasks"
|
||||
msgstr "Alla uppgifter"
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,date_deadline:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,date_deadline:0
|
||||
msgid "Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,partner_id:0
|
||||
#: field:scrum.task,partner_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,partner_id:0
|
||||
#: field:project.scrum.task,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.product.backlog,planned_hours:0
|
||||
#: field:scrum.sprint,planned_hours:0
|
||||
#: field:scrum.task,planned_hours:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.product.backlog,planned_hours:0
|
||||
#: field:project.scrum.sprint,planned_hours:0
|
||||
#: field:project.scrum.task,planned_hours:0
|
||||
msgid "Planned Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: selection:scrum.project,state:0
|
||||
#. module: project_scrum
|
||||
#: selection:project.scrum.project,state:0
|
||||
msgid "Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.product.backlog,priority:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.product.backlog,priority:0
|
||||
msgid "Priority"
|
||||
msgstr "Prioritet"
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,state:0
|
||||
#: view:scrum.sprint:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,state:0
|
||||
#: view:project.scrum.sprint:0
|
||||
msgid "State"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,progress_rate:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,progress_rate:0
|
||||
msgid "Percent of tasks closed according to the total of tasks todo."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,notes:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,notes:0
|
||||
msgid "Internal description of the project."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.sprint,meetings_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.sprint,meetings_id:0
|
||||
msgid "Daily Scrum"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.task,total_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.task,total_hours:0
|
||||
msgid "Computed as: Time Spent + Remaining Time."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,type:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,type:0
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.project:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.project:0
|
||||
msgid "Scrum Data"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: selection:scrum.product.backlog,priority:0
|
||||
#: selection:scrum.task,priority:0
|
||||
#. module: project_scrum
|
||||
#: selection:project.scrum.product.backlog,priority:0
|
||||
#: selection:project.scrum.task,priority:0
|
||||
msgid "Medium"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,total_hours:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,total_hours:0
|
||||
msgid "Total Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.ui.menu,name:scrum.next_id_67
|
||||
#. module: project_scrum
|
||||
#: model:ir.ui.menu,name:project_scrum.next_id_67
|
||||
msgid "Scrum"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,planned_hours:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,planned_hours:0
|
||||
msgid "Planned Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.meeting,question_today:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,question_today:0
|
||||
msgid "Tasks for today"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.meeting,question_yesterday:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,question_yesterday:0
|
||||
msgid "Tasks since yesterday"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,date_start:0
|
||||
#: field:scrum.sprint,date_start:0
|
||||
#: field:scrum.task,date_start:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,date_start:0
|
||||
#: field:project.scrum.sprint,date_start:0
|
||||
#: field:project.scrum.task,date_start:0
|
||||
msgid "Starting Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_scrum_project_tree
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_scrum_project_tree
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_scrum_project_tree
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_scrum_project_tree
|
||||
msgid "Projects"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#. module: project_scrum
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,history:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,history:0
|
||||
msgid "Task Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.dblc_proj2
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.dblc_proj2
|
||||
msgid "View project's tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,delay_hours:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,delay_hours:0
|
||||
msgid "Delay Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,contact_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,contact_id:0
|
||||
msgid "Contact"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,tasks:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,tasks:0
|
||||
msgid "Scrum Tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.meeting,date:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,date:0
|
||||
msgid "Meeting Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.product.backlog:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.product.backlog:0
|
||||
msgid "Tasks"
|
||||
msgstr "Uppgifter"
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.sprint:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.sprint:0
|
||||
msgid "Retrospective"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: wizard_view:scrum.product.backlog.task.create,init:0
|
||||
#: wizard_button:scrum.product.backlog.task.create,init,create:0
|
||||
#. module: project_scrum
|
||||
#: wizard_view:project.scrum.product.backlog.task.create,init:0
|
||||
#: wizard_button:project.scrum.product.backlog.task.create,init,create:0
|
||||
msgid "Create Tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,progress:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,progress:0
|
||||
msgid "Progress (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.task,progress:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.task,progress:0
|
||||
msgid "Computed as: Time Spent / Total Time."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,scrum:0
|
||||
#: field:scrum.task,scrum:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,scrum:0
|
||||
#: field:project.scrum.task,scrum:0
|
||||
msgid "Is Scrum"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_product_backlog_form_draft
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_product_backlog_form_draft
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_product_backlog_form_draft
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_product_backlog_form_draft
|
||||
msgid "Draft Backlogs"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.sprint,backlog_ids:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.sprint,backlog_ids:0
|
||||
msgid "Sprint Backlog"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_view_task6
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_view_task6
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_view_task6
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_view_task6
|
||||
msgid "Opened tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.meeting,question_blocks:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,question_blocks:0
|
||||
msgid "Blocks encountered"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.meeting:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.meeting:0
|
||||
msgid "Optionnal Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,total_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,total_hours:0
|
||||
msgid "Sum of total hours of all tasks related to this project."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.model,name:scrum.model_scrum_sprint
|
||||
#: view:scrum.meeting:0
|
||||
#: view:scrum.sprint:0
|
||||
#. module: project_scrum
|
||||
#: model:ir.model,name:project_scrum.model_scrum_sprint
|
||||
#: view:project.scrum.meeting:0
|
||||
#: view:project.scrum.sprint:0
|
||||
msgid "Scrum Sprint"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.sprint:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.sprint:0
|
||||
msgid "Review"
|
||||
msgstr "Granska"
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_open_tree7
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_sprint_open_tree7
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_open_tree7
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_sprint_open_tree7
|
||||
msgid "My opened sprints (Scrum Master)"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.product.backlog,note:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.product.backlog,note:0
|
||||
msgid "Note"
|
||||
msgstr "Anteckning"
|
||||
|
||||
#. module: scrum
|
||||
#: selection:scrum.product.backlog,state:0
|
||||
#: selection:scrum.sprint,state:0
|
||||
#: selection:scrum.task,state:0
|
||||
#. module: project_scrum
|
||||
#: selection:project.scrum.product.backlog,state:0
|
||||
#: selection:project.scrum.sprint,state:0
|
||||
#: selection:project.scrum.task,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: selection:scrum.product.backlog,priority:0
|
||||
#: selection:scrum.task,priority:0
|
||||
#. module: project_scrum
|
||||
#: selection:project.scrum.product.backlog,priority:0
|
||||
#: selection:project.scrum.task,priority:0
|
||||
msgid "Low"
|
||||
msgstr "Låg"
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_view_task5
|
||||
#: model:ir.ui.menu,name:scrum.menu_tasks_yours
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_view_task5
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_tasks_yours
|
||||
msgid "My opened tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,manager:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,manager:0
|
||||
msgid "Project Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: selection:scrum.project,state:0
|
||||
#: selection:scrum.task,state:0
|
||||
#. module: project_scrum
|
||||
#: selection:project.scrum.project,state:0
|
||||
#: selection:project.scrum.task,state:0
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: view:scrum.meeting:0
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.meeting:0
|
||||
msgid "Is there anything blocking you ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.product.backlog,state:0
|
||||
#: field:scrum.sprint,state:0
|
||||
#: field:scrum.task,state:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.product.backlog,state:0
|
||||
#: field:project.scrum.sprint,state:0
|
||||
#: field:project.scrum.task,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_open_tree
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_sprint_open_tree
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_open_tree
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_sprint_open_tree
|
||||
msgid "Opened Sprints"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,effective_hours:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,effective_hours:0
|
||||
msgid "Time Spent"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,complete_name:0
|
||||
#: field:scrum.project,name:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,complete_name:0
|
||||
#: field:project.scrum.project,name:0
|
||||
msgid "Project Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,product_owner_id:0
|
||||
#: field:scrum.sprint,product_owner_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,product_owner_id:0
|
||||
#: field:project.scrum.sprint,product_owner_id:0
|
||||
msgid "Product Owner"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_open_tree5
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_sprint_open_tree5
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_open_tree5
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_sprint_open_tree5
|
||||
msgid "My Sprints (Scrum Master)"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:process.node,name:scrum.process_node_productbacklog0
|
||||
#: view:scrum.product.backlog:0
|
||||
#. module: project_scrum
|
||||
#: model:process.node,name:project_scrum.process_node_productbacklog0
|
||||
#: view:project.scrum.product.backlog:0
|
||||
msgid "Product backlog"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_product_backlog_form
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_product_backlog_form
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_product_backlog_form
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_product_backlog_form
|
||||
msgid "Backlogs"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.product.backlog,user_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.product.backlog,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Användare"
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.product.backlog,active:0
|
||||
#: field:scrum.project,active:0
|
||||
#: field:scrum.task,active:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.product.backlog,active:0
|
||||
#: field:project.scrum.project,active:0
|
||||
#: field:project.scrum.task,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.task,delay_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.task,delay_hours:0
|
||||
msgid ""
|
||||
"Computed as: Total Time - Estimated Time. It gives the difference of the "
|
||||
"time estimated by the project manager and the real time to close the task."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,timebox_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,timebox_id:0
|
||||
msgid "Timebox"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_open_tree2
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_sprint_open_tree2
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_open_tree2
|
||||
#: model:ir.ui.menu,name:project_scrum.menu_action_sprint_open_tree2
|
||||
msgid "Draft Sprints"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,timesheet_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,timesheet_id:0
|
||||
msgid "Working Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,work_ids:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,work_ids:0
|
||||
msgid "Work done"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_backlog_open
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_backlog_open
|
||||
msgid "View sprint backlog"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,delegated_user_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,delegated_user_id:0
|
||||
msgid "Delegated To"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,date_close:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,date_close:0
|
||||
msgid "Date Closed"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.task,user_id:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.task,user_id:0
|
||||
msgid "Assigned to"
|
||||
msgstr "Tilldelad till"
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.meeting,question_backlog:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,question_backlog:0
|
||||
msgid "Backlog Accurate"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,effective_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,effective_hours:0
|
||||
msgid "Sum of spent hours of all tasks related to this project."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.task,project_id:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.task,project_id:0
|
||||
msgid ""
|
||||
"If you have [?] in the project name, it means there are no analytic account "
|
||||
"linked to this project."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: help:scrum.project,planned_hours:0
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.project,planned_hours:0
|
||||
msgid "Sum of planned hours of all tasks related to this project."
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: field:scrum.project,warn_customer:0
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.project,warn_customer:0
|
||||
msgid "Warn Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
#: model:ir.actions.act_window,name:scrum.action_sprint_open_tree4
|
||||
#: model:ir.ui.menu,name:scrum.menu_action_sprint_open_tree4
|
||||
msgid "My Sprints (Product Owner)"
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.action_sprint_open_tree4msgid "My Sprints (Product Owner)"
|
||||
msgstr ""
|
||||
|
||||
#. module: scrum
|
||||
|
||||
@@ -31,7 +31,7 @@ class resource_calendar(osv.osv):
|
||||
_columns = {
|
||||
'name' : fields.char("Name", size=64, required=True),
|
||||
'company_id' : fields.many2one('res.company', 'Company', required=False),
|
||||
'week_id' : fields.one2many('resource.calendar.week', 'calendar_id', 'Working Time'),
|
||||
'attendance_ids' : fields.one2many('resource.calendar.attendance', 'calendar_id', 'Working Time'),
|
||||
'manager' : fields.many2one('res.users', 'Workgroup manager'),
|
||||
}
|
||||
_defaults = {
|
||||
@@ -65,7 +65,7 @@ class resource_calendar(osv.osv):
|
||||
maxrecur = 100
|
||||
current_hour = dt_from.hour
|
||||
while (todo>0) and maxrecur:
|
||||
cr.execute("select hour_from,hour_to from resource_calendar_week where dayofweek='%s' and calendar_id=%s order by hour_from desc", (dt_from.day_of_week,id))
|
||||
cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from desc", (dt_from.day_of_week,id))
|
||||
for (hour_from,hour_to) in cr.fetchall():
|
||||
leave_flag = False
|
||||
if (hour_from<current_hour) and (todo>0):
|
||||
@@ -101,7 +101,7 @@ class resource_calendar(osv.osv):
|
||||
maxrecur = 100
|
||||
current_hour = dt_from.hour
|
||||
while (todo>0) and maxrecur:
|
||||
cr.execute("select hour_from,hour_to from resource_calendar_week where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id))
|
||||
cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id))
|
||||
for (hour_from,hour_to) in cr.fetchall():
|
||||
leave_flag = False
|
||||
if (hour_to>current_hour) and (todo>0):
|
||||
@@ -136,7 +136,7 @@ class resource_calendar(osv.osv):
|
||||
current_hour = dt_from.hour
|
||||
|
||||
while (dt_from <= dt_to):
|
||||
cr.execute("select hour_from,hour_to from resource_calendar_week where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id))
|
||||
cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id))
|
||||
der = cr.fetchall()
|
||||
for (hour_from,hour_to) in der:
|
||||
if hours != 0.0:#For first time of the loop only,hours will be 0
|
||||
@@ -169,8 +169,8 @@ class resource_calendar(osv.osv):
|
||||
|
||||
resource_calendar()
|
||||
|
||||
class resource_calendar_week(osv.osv):
|
||||
_name = "resource.calendar.week"
|
||||
class resource_calendar_attendance(osv.osv):
|
||||
_name = "resource.calendar.attendance"
|
||||
_description = "Work Detail"
|
||||
_columns = {
|
||||
'name' : fields.char("Name", size=64, required=True),
|
||||
@@ -181,7 +181,7 @@ class resource_calendar_week(osv.osv):
|
||||
'calendar_id' : fields.many2one("resource.calendar", "Resource's Calendar", required=True),
|
||||
}
|
||||
_order = 'dayofweek, hour_from'
|
||||
resource_calendar_week()
|
||||
resource_calendar_attendance()
|
||||
|
||||
class resource_resource(osv.osv):
|
||||
_name = "resource.resource"
|
||||
|
||||
@@ -8,70 +8,70 @@
|
||||
<field name="name">38 Hours/Week</field>
|
||||
</record>
|
||||
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Monday morning</field>
|
||||
<field name="dayofweek">0</field>
|
||||
<field name="hour_from">08</field>
|
||||
<field name="hour_to">12</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Monday evening</field>
|
||||
<field name="dayofweek">0</field>
|
||||
<field name="hour_from">13</field>
|
||||
<field name="hour_to">18</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Tuesday morning</field>
|
||||
<field name="dayofweek">1</field>
|
||||
<field name="hour_from">08</field>
|
||||
<field name="hour_to">12</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Tuesday evening</field>
|
||||
<field name="dayofweek">1</field>
|
||||
<field name="hour_from">13</field>
|
||||
<field name="hour_to">18</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Wednesday morning</field>
|
||||
<field name="dayofweek">2</field>
|
||||
<field name="hour_from">08</field>
|
||||
<field name="hour_to">12</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Wednesday evening</field>
|
||||
<field name="dayofweek">2</field>
|
||||
<field name="hour_from">13</field>
|
||||
<field name="hour_to">18</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Thursday morning</field>
|
||||
<field name="dayofweek">3</field>
|
||||
<field name="hour_from">08</field>
|
||||
<field name="hour_to">12</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Thursday evening</field>
|
||||
<field name="hour_from">13</field>
|
||||
<field name="hour_to">18</field>
|
||||
<field name="dayofweek">3</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Friday morning</field>
|
||||
<field name="dayofweek">4</field>
|
||||
<field name="hour_from">08</field>
|
||||
<field name="hour_to">12</field>
|
||||
<field name="calendar_id" ref="timesheet_group1"/>
|
||||
</record>
|
||||
<record model="resource.calendar.week">
|
||||
<record model="resource.calendar.attendance">
|
||||
<field name="name">Friday evening</field>
|
||||
<field name="dayofweek">4</field>
|
||||
<field name="hour_from">13</field>
|
||||
|
||||
@@ -106,9 +106,9 @@
|
||||
<field name="search_view_id" ref="view_resource_calendar_search"/>
|
||||
</record>
|
||||
|
||||
<record id="view_resource_calendar_week_tree" model="ir.ui.view">
|
||||
<field name="name">resource.calendar.week.tree</field>
|
||||
<field name="model">resource.calendar.week</field>
|
||||
<record id="view_resource_calendar_attendance_tree" model="ir.ui.view">
|
||||
<field name="name">resource.calendar.attendance.tree</field>
|
||||
<field name="model">resource.calendar.attendance</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Working Time">
|
||||
@@ -119,9 +119,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_resource_calendar_week_form" model="ir.ui.view">
|
||||
<field name="name">resource.calendar.week.form</field>
|
||||
<field name="model">resource.calendar.week</field>
|
||||
<record id="view_resource_calendar_attendance_form" model="ir.ui.view">
|
||||
<field name="name">resource.calendar.attendance.form</field>
|
||||
<field name="model">resource.calendar.attendance</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Working Time">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_resource_calendar","resource.calendar","model_resource_calendar","base.group_system",1,1,1,1
|
||||
"access_resource_calendar_week","resource.calendar.week","model_resource_calendar_week","base.group_system",1,1,1,1
|
||||
"access_resource_calendar_attendance","resource.calendar.attendance","model_resource_calendar_attendance","base.group_system",1,1,1,1
|
||||
"access_resource_resource","resource.resource","model_resource_resource","base.group_system",1,1,1,1
|
||||
"access_resource_resource_all","resource.resource all","model_resource_resource",,1,0,0,0
|
||||
"access_resource_calendar_leaves","resource.calendar.leaves","model_resource_calendar_leaves","base.group_system",1,1,1,1
|
||||
|
||||
|
@@ -124,6 +124,7 @@
|
||||
<field name="search_view_id" ref="view_order_product_search"/>
|
||||
<field name="view_id" ref="view_order_product_tree"/>
|
||||
<field name="context">{'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="help">With Sales Analysis consult your sales total amount suits to different group criteria (salesman, partner, product, etc.)</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="base.next_id_64" name="Reporting" parent="base.menu_base_partner" sequence="11"/>
|
||||
@@ -135,6 +136,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{'search_default_month':1, 'search_default_group_product':1, 'search_default_group_partner':1, 'search_default_done':1, 'search_default_out': 1, 'group_by':[], 'group_by_no_leaf':1}</field>
|
||||
<field name="help">Shipments Analysis opens a search views with all your shipments (in and out quantities), their total value, planned and actual dates. You can sort out your analysis on different groups to get fine grained analysis.</field>
|
||||
</record>
|
||||
<menuitem action="action_stock_move_report_so" id="menu_action_stock_move_report_so" parent="base.next_id_64" sequence="25"/>
|
||||
|
||||
|
||||
@@ -294,6 +294,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar,graph</field>
|
||||
<field name="search_view_id" ref="view_sales_order_filter"/>
|
||||
<field name="help">The sale order manages the invoicing, the product fullfilment and the delivery processes. OpenERP can handle products, services and consumables so that a sale order can trigger tasks, manufacturing orders, purchases, etc. It support several invoicing methods according to your configuration: from the sale order, from the pickings, etc.</field>
|
||||
</record>
|
||||
<menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="3"/>
|
||||
|
||||
@@ -500,6 +501,7 @@
|
||||
<field name="search_view_id" ref="view_sales_order_uninvoiced_line_filter" />
|
||||
<field name="context">{"search_default_uninvoiced":1}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="help">Lines to invoice opens a search view with sales order and their status.</field>
|
||||
</record>
|
||||
|
||||
<record id="action_order_line_tree3" model="ir.actions.act_window">
|
||||
|
||||
@@ -8,20 +8,23 @@
|
||||
parent="base.menu_base_partner"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_document_form">
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">ir.attachment</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain" eval="[('parent_id','=',ref('dir_sale'))]"></field>
|
||||
</record>
|
||||
<field name="name">Documents</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">ir.attachment</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain" eval="[('parent_id','=',ref('dir_sale'))]"></field>
|
||||
<field name="help">Documents give your access to all attached documents; it's a repository of all attached documents (mails, documents attached to a project, etc.)</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_wiki_test">
|
||||
<field name="name">Wiki Pages</field>
|
||||
<field name="res_model">wiki.wiki</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain" eval="[('group_id','=',ref('wiki_groups_sale_faq'))]"/>
|
||||
<field name="search_view_id" ref="wiki.view_wiki_filter"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_wiki_test">
|
||||
<field name="name">Wiki Pages</field>
|
||||
<field name="res_model">wiki.wiki</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain" eval="[('group_id','=',ref('wiki_groups_sale_faq'))]"/>
|
||||
<field name="search_view_id" ref="wiki.view_wiki_filter"/>
|
||||
<field name="help">FAQ is a wiki page used to share frequently ask questions.</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
name="Documents"
|
||||
|
||||
Reference in New Issue
Block a user