diff options
| author | apa-tiny <apa@tinyerp.com> | 2010-03-17 10:17:51 +0530 |
|---|---|---|
| committer | apa-tiny <apa@tinyerp.com> | 2010-03-17 10:17:51 +0530 |
| commit | 8f60dfdeed1d95efc82b60491020b55a33f4e408 (patch) | |
| tree | 59b3c7e68c11c38f188a1c8b1d02b2f7d47f2ffe /addons | |
| parent | 1a89fb49b3f9a75670fe9b09e31144032ad21626 (diff) | |
| parent | b6b93ef9d0eee59855f509c844bcc1a18e7bbb8d (diff) | |
[MERGE]
bzr revid: apa@tinyerp.com-20100317044751-jr140kvkfd1trbcu
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/account/invoice.py | 3 | ||||
| -rw-r--r-- | addons/crm/crm_lead.py | 3 | ||||
| -rw-r--r-- | addons/crm/crm_lead_view.xml | 11 | ||||
| -rw-r--r-- | addons/crm/crm_opportunity_view.xml | 9 | ||||
| -rw-r--r-- | addons/crm/crm_phonecall.py | 2 | ||||
| -rwxr-xr-x | addons/crm/scripts/openerp_mailgate/openerp_mailgate.py | 31 | ||||
| -rw-r--r-- | addons/crm/wizard/wizard_crm_new_send_email.py | 2 | ||||
| -rw-r--r-- | addons/project_issue/__terp__.py | 6 | ||||
| -rw-r--r-- | addons/project_issue/project_issue.py | 29 | ||||
| -rw-r--r-- | addons/project_issue/project_issue_view.xml | 558 |
10 files changed, 335 insertions, 319 deletions
diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 47561e57aaf..e79774e36e4 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -1136,7 +1136,8 @@ class account_invoice_line(osv.osv): 'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]), 'note': fields.text('Notes', translate=True), 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'), - 'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company',store=True) + 'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company',store=True), + 'partner_id': fields.related('invoice_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True) } _defaults = { 'quantity': lambda *a: 1, diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index da9f2ed7230..aea2da0325e 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -30,7 +30,7 @@ class crm_lead(osv.osv): _columns = { 'categ_id': fields.many2one('crm.case.categ', 'Lead Source', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"), 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"), - 'partner_name': fields.char("Lead Name", size=64), + 'partner_name': fields.char("Contact Name", size=64), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'), 'date_closed': fields.datetime('Closed', readonly=True), @@ -39,6 +39,7 @@ class crm_lead(osv.osv): 'user_id': fields.many2one('res.users', 'Salesman'), 'referred': fields.char('Referred By', size=32), + 'function_name' : fields.char('Function', size=64), } _defaults = { 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c), diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 61763ce41ce..40998528ff5 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -42,7 +42,7 @@ <field name="arch" type="xml"> <form string="Leads Form"> <group colspan="4" col="7"> - <field name="partner_name" required="1"/> + <field name="name" required="1"/> <field name="priority"/> <field name="date_deadline"/> <button @@ -57,7 +57,6 @@ <field name="user_id"/> <field name="stage_id" widget="selection" readonly="1" domain="[('object_id.model', '=', 'crm.lead')]"/> <group col="2" colspan="1"> - <button name="stage_previous" string="Previous" states="open,pending" type="object" icon="gtk-go-back"/> <button name="stage_next" string="Next" states="open,pending" type="object" icon="gtk-go-forward"/> </group> @@ -66,10 +65,10 @@ <page string="Lead"> <group colspan="2" col="4"> <separator string="Contact" colspan="4" col="4"/> - <field name="name" string="Contact Name" colspan="4"/> + <field name="partner_name" string="Contact Name" colspan="4"/> <newline/> <field domain="[('domain', '=', 'contact')]" name="title"/> - <field name="function"/> + <field name="function_name" /> <field name="street" colspan="4"/> <field name="street2" colspan="4"/> <field name="zip"/> @@ -79,14 +78,14 @@ </group> <group colspan="2" col="3"> <separator string="Communication" colspan="4" col="3"/> + <field name="email_from" widget="email"/> + <newline/> <field name="phone"/> <newline/> <field name="fax"/> <newline/> <field name="mobile"/> <newline/> - <field name="email_from" widget="email"/> - <newline/> <separator string="Links" colspan="4" col="3"/> <field name="partner_id"/> <button diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml index 9b6e3739dce..4bf7a0b858d 100644 --- a/addons/crm/crm_opportunity_view.xml +++ b/addons/crm/crm_opportunity_view.xml @@ -56,10 +56,11 @@ <form string="Opportunities"> <group colspan="4" col="7"> <field name="name" string="Opportunity"/> - <group colspan="2" col="4"> - <field name="stage_id" readonly="1" on_change="onchange_stage_id(stage_id)" widget="selection" domain="[('object_id.model', '=', 'crm.opportunity')]"/> - <button name="stage_previous" string="Previous" states="open,pending" type="object" icon="gtk-go-back"/> - <button name="stage_next" string="Next" states="open,pending" type="object" icon="gtk-go-forward"/> + <label string="Stage:" align="1.0"/> + <group colspan="1" col="4"> + <field name="stage_id" nolabel="1" on_change="onchange_stage_id(stage_id)" widget="selection" domain="[('object_id.model', '=', 'crm.opportunity')]"/> + <button name="stage_previous" states="open,pending" type="object" icon="gtk-go-back" string=""/> + <button name="stage_next" states="open,pending" type="object" icon="gtk-go-forward" string=""/> </group> <field name="user_id"/> <button string="Schedule Meeting" diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py index 1c0f4e1df4a..6a65195a38b 100644 --- a/addons/crm/crm_phonecall.py +++ b/addons/crm/crm_phonecall.py @@ -42,7 +42,7 @@ class crm_phonecall(osv.osv): 'opportunity_id':fields.many2one ('crm.opportunity', 'Opportunity'), } _defaults = { - 'date': lambda *a: time.strftime('%Y-%m-%d') + 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S') } crm_phonecall() diff --git a/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py b/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py index 22264710fcf..fb73bafdbe4 100755 --- a/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py +++ b/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python # -*- coding: utf-8 -*- ############################################################################## # @@ -30,14 +31,7 @@ import binascii import time, socket -email_re = re.compile(r""" - ([a-zA-Z][\w\.-]*[a-zA-Z0-9] # username part - @ # mandatory @ sign - [a-zA-Z0-9][\w\.-]* # domain must start with a letter ... Ged> why do we include a 0-9 then? - \. - [a-z]{2,3} # TLD - ) - """, re.VERBOSE) +email_re = re.compile(r"([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6})") case_re = re.compile(r"\[([0-9]+)\]", re.UNICODE) command_re = re.compile("^Set-([a-z]+) *: *(.+)$", re.I + re.UNICODE) reference_re = re.compile("<.*-tinycrm-(\\d+)@(.*)>", re.UNICODE) @@ -124,7 +118,7 @@ def html2plaintext(html, body_id=None, encoding='utf-8'): html += '\n\n' html += '[%s] %s\n' % (i+1, url) return html - + class rpc_proxy(object): def __init__(self, uid, passwd, host='localhost', port=8069, path='object', dbname='terp'): self.rpc = xmlrpclib.ServerProxy('http://%s:%s/xmlrpc/%s' % (host, port, path)) @@ -178,11 +172,7 @@ class email_parser(object): 'user_id': False, 'description': message['body'], } - try: - data.update(self.partner_get(self._decode_header(msg['From']))) - except Exception, e: - import netsvc - netsvc.Logger().notifyChannel('mailgate', netsvc.LOG_ERROR, "%s" % e) + data.update(self.partner_get(self._decode_header(msg['From']))) try: id = self.rpc(self.model, 'create', data) @@ -258,7 +248,6 @@ class email_parser(object): message['attachment'] = attachment #end for return message - #end def def msg_user(self, msg, id): body = self.msg_body_get(msg) @@ -363,7 +352,7 @@ class email_parser(object): if msg.get('Subject', ''): del msg['Subject'] msg['Subject'] = '['+str(case_id)+'] '+subject - msg['Message-Id'] = '<'+str(time.time())+'-tinycrm-'+str(case_id)+'@'+socket.gethostname()+'>' + msg['Message-Id'] = '<'+str(time.time())+'-openerpcrm-'+str(case_id)+'@'+socket.gethostname()+'>' emails = self.rpc(self.model, 'emails_get', case_id) priority = emails[3] @@ -386,9 +375,7 @@ class email_parser(object): if __name__ == '__main__': import sys, optparse - parser = optparse.OptionParser( - usage='usage: %prog [options]', - version='%prog v1.0') + parser = optparse.OptionParser( usage='usage: %prog [options]', version='%prog v1.0') group = optparse.OptionGroup(parser, "Note", "This program parse a mail from standard input and communicate " "with the Open ERP server for case management in the CRM module.") @@ -408,10 +395,6 @@ if __name__ == '__main__': msg_txt = email.message_from_file(sys.stdin) - try : - parser.parse(msg_txt) - except Exception, e: - if getattr(e, 'faultCode', '') and 'Connection unexpectedly closed' in e.faultCode: - print e + parser.parse(msg_txt) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/wizard/wizard_crm_new_send_email.py b/addons/crm/wizard/wizard_crm_new_send_email.py index 0114ac9408f..b9a43546132 100644 --- a/addons/crm/wizard/wizard_crm_new_send_email.py +++ b/addons/crm/wizard/wizard_crm_new_send_email.py @@ -74,7 +74,7 @@ def _mass_mail_send(self, cr, uid, data, context): case = case_pool.browse(cr,uid,data['ids'])[0] case_pool.write(cr, uid, [case.id], { - 'som': False, + #'som': False, 'canal_id': False, }) emails = [data['form']['to']] + (data['form']['cc'] or '').split(',') diff --git a/addons/project_issue/__terp__.py b/addons/project_issue/__terp__.py index 05a94ba809b..03ec9e22285 100644 --- a/addons/project_issue/__terp__.py +++ b/addons/project_issue/__terp__.py @@ -30,7 +30,11 @@ """, 'author': 'Tiny', 'website': 'http://www.openerp.com', - 'depends': ['crm','project'], + 'depends': [ + 'crm', + 'project', + 'hr_timesheet_sheet', + ], 'init_xml': [ 'project_issue_data.xml' ], diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 48492f44675..d9a4cffdcf9 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -39,8 +39,6 @@ class project_issue(osv.osv): _columns = { 'date_closed': fields.datetime('Closed', readonly=True), 'date': fields.datetime('Date'), - 'ref' : fields.reference('Reference', selection=crm._links_get, size=128), - 'ref2' : fields.reference('Reference 2', selection=crm._links_get, size=128), 'canal_id': fields.many2one('res.partner.canal', 'Channel',help="The channels represent the different communication modes available with the customer." \ " With each commercial opportunity, you can indicate the canall which is this opportunity source."), 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('object_id.model', '=', 'crm.project.bug')]"), @@ -51,8 +49,13 @@ class project_issue(osv.osv): 'partner_phone': fields.char('Phone', size=32), 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('object_id.model', '=', 'project.issue')]"), 'project_id':fields.many2one('project.project', 'Project'), - 'duration': fields.float('Duration'), - 'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]") + 'duration': fields.float('Duration'), + 'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]"), + 'assigned_to' : fields.many2one('res.users', 'Assigned to'), + 'timesheet_ids' : fields.one2many('hr.analytic.timesheet', 'issue_id', 'Timesheets'), + 'analytic_account_id' : fields.many2one('account.analytic.account', 'Analytic Account', + domain="[('partner_id', '=', partner_id)]", + required=True), } def _get_project(self, cr, uid, context): user = self.pool.get('res.users').browse(cr,uid,uid, context=context) @@ -87,5 +90,23 @@ class project_issue(osv.osv): _defaults = { 'project_id':_get_project, } + project_issue() +class account_analytic_line(osv.osv): + _inherit = 'account.analytic.line' + _columns = { + 'create_date' : fields.datetime('Create Date', readonly=True), + } + +account_analytic_line() + +class hr_analytic_issue(osv.osv): + _inherit = 'hr.analytic.timesheet' + + _columns = { + 'issue_id' : fields.many2one('project.issue', 'Issue'), + } + +hr_analytic_issue() + diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 2a82ef783d3..b74e73efc8d 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -2,295 +2,301 @@ <openerp> <data> - # ------------------------------------------------------ - # Issue Categories - # ------------------------------------------------------ + <record id="project_issue_categ_action" model="ir.actions.act_window"> + <field name="name">Issue Categories</field> + <field name="res_model">crm.case.categ</field> + <field name="view_type">form</field> + <field name="view_id" ref="crm.crm_case_categ_tree-view"/> + <field name="domain">[('object_id.model', '=', 'project.issue')]</field> + <field name="context">{'object_id':'project.issue'}</field> + </record> + <record id="project_issue_stage_act" model="ir.actions.act_window"> + <field name="name">Issue Stages</field> + <field name="res_model">crm.case.stage</field> + <field name="view_type">form</field> + <field name="view_id" ref="crm.crm_case_stage_tree"/> + <field name="domain">[('object_id.model', '=', 'project.issue')]</field> + <field name="context">{'object_id':'project.issue'}</field> + </record> + <menuitem action="project_issue_stage_act" id="menu_project_issue_stage_act" parent="crm.menu_crm_case_stage"/> - <record id="project_issue_categ_action" model="ir.actions.act_window"> - <field name="name">Issue Categories</field> - <field name="res_model">crm.case.categ</field> - <field name="view_type">form</field> - <field name="view_id" ref="crm.crm_case_categ_tree-view"/> - <field name="domain">[('object_id.model', '=', 'project.issue')]</field> - <field name="context">{'object_id':'project.issue'}</field> - </record> - # ------------------------------------------------------ - # Stage - # ------------------------------------------------------ - <record id="project_issue_stage_act" model="ir.actions.act_window"> - <field name="name">Issue Stages</field> - <field name="res_model">crm.case.stage</field> - <field name="view_type">form</field> - <field name="view_id" ref="crm.crm_case_stage_tree"/> - <field name="domain">[('object_id.model', '=', 'project.issue')]</field> - <field name="context">{'object_id':'project.issue'}</field> - </record> - <menuitem action="project_issue_stage_act" id="menu_project_issue_stage_act" parent="crm.menu_crm_case_stage"/> - - <record model="ir.ui.view" id="project_issue_form_view"> - <field name="name">Project Issue Tracker Form</field> - <field name="model">project.issue</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <form string="Issue Tracker Form"> - <group colspan="3" col="4"> - <field name="name"/> - <field name="user_id"/> - <field name="project_id" required="True"/> - <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'project.issue')]"/> - </group> - <group colspan="1" col="3"> - <field name="task_id"/> - <button string="Convert To Task" - name="%(wizard_project_issue_task_set)d" - icon="gtk-index" type="action" - attrs="{'invisible':[('task_id','!=',False)]}"/> - <newline/> - <field name="stage_id" on_change="onchange_stage_id(stage_id)" domain="[('object_id.model', '=', 'project.issue')]"/> - <group colspan="1" col="2"> - <button icon="gtk-go-back" string="" name="stage_previous" type="object"/> - <button icon="gtk-go-forward" string="" name="stage_next" type="object"/> - </group> - </group> - <notebook colspan="4"> - <page string="General"> - <group col="2" colspan="2"> - <separator colspan="2" string="Communication"/> - <field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)"/> - <field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)"/> - <field name="email_from"/> - </group> - <group col="2" colspan="2"> - <separator colspan="2" string="Status"/> - <field name="type_id"/> - <field name="priority"/> - </group> - <separator string= "Description" colspan="4"/> - <field name="description" nolabel="1" colspan="4"/> - <separator colspan="4"/> - <group col="8" colspan="4"> - <field name="state" /> - <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> - <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> - <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> - <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> - <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/> - </group> - </page> - <page string="History" groups="base.group_extended"> - <group col="2" colspan="2"> - <separator colspan="2" string="Dates"/> + <record model="ir.ui.view" id="project_issue_form_view"> + <field name="name">Project Issue Tracker Form</field> + <field name="model">project.issue</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Issue Tracker Form"> + <group colspan="4" col="8"> + <field name="name"/> + <field name="user_id"/> + <field name="assigned_to" /> + <group colspan="2" col="4"> + <field name="stage_id" on_change="onchange_stage_id(stage_id)" domain="[('object_id.model', '=', 'project.issue')]" widget="selection"/> + <button icon="gtk-go-back" string="" name="stage_previous" type="object"/> + <button icon="gtk-go-forward" string="" name="stage_next" type="object"/> + </group> + <field name="project_id" required="True"/> + <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'project.issue')]"/> <field name="create_date"/> - <field name="date_closed"/> - </group> - <group col="2" colspan="2"> - <separator string="References" colspan="2"/> - <field name="id"/> - <field name="active"/> - </group> - <group col="2" colspan="2"> - <separator string="References" colspan="2"/> - <field name="ref" colspan="4"/> - <field name="ref2" colspan="4"/> + <field name="write_date" /> </group> - <field name="log_ids" nolabel="1" colspan="4"> - <form string="Actions"> - <separator string="Action Information" colspan="4"/> - <field name="name" colspan="4"/> - <field name="date" /> - <field name="user_id" /> - <field name="canal_id"/> - </form> - </field> - </page> - <page string="Emails" groups="base.group_extended"> - <group colspan="4"> - <field colspan="4" name="email_cc" string="CC"/> - </group> - <field name="history_line" colspan="4" nolabel="1" mode="form,tree"> - <form string="Communication history"> - <group col="7" colspan="4"> - <field name="date"/> - <field name="email"/> - <field name="canal_id"/> - <button - string="Add a CC" - name="%(crm.action_view_crm_email_add_cc_wizard)d" - icon="gtk-add" type="action"/> + <notebook colspan="4"> + <page string="General"> + <group col="2" colspan="2"> + <separator colspan="2" string="Communication"/> + <field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)"/> + <field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)"/> + <field name="email_from"/> + <field name="analytic_account_id" /> + </group> + <group col="3" colspan="2"> + <separator colspan="3" string="Status"/> + <field name="type_id" colspan="3"/> + <field name="priority" colspan="3"/> + <field name="task_id" /> + <button string="Convert To Task" + name="%(wizard_project_issue_task_set)d" + icon="gtk-index" type="action" + attrs="{'invisible':[('task_id','!=',False)]}" /> + </group> + <separator string= "Description" colspan="4"/> + <field name="description" nolabel="1" colspan="4"/> + <separator colspan="4"/> + <group col="8" colspan="4"> + <field name="state" /> + <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> + <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> + <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> + <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> + <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> + <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/> + </group> + </page> + <page string="History" groups="base.group_extended"> + <group col="2" colspan="2"> + <separator colspan="2" string="Date"/> + <field name="date_closed"/> </group> - <newline/> - <field name="description" colspan="4" nolabel="1"/> - <button colspan="4" string="Reply to Last Email" name="%(crm.wizard_crm_send_mail)d" context="{'mail':'reply'}" icon="gtk-undo" type="action"/> - </form> - <tree string="Communication history"> - <field name="description"/> - <field name="email"/> - <field name="date"/> - </tree> - </field> - <button colspan="4" string="Send New Email" name="%(crm.wizard_crm_new_send_mail)d" context="{'mail':'new'}" icon="gtk-go-forward" type="action"/> - </page> - </notebook> - </form> - </field> - </record> - <record model="ir.ui.view" id="project_issue_tree_view"> - <field name="name">Project Issue Tracker Tree</field> - <field name="model">project.issue</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Issue Tracker Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> - <field name="id"/> - <field name="name"/> - <field name="partner_id"/> - <field name="priority" string="Severity"/> - <field name="stage_id" string="Resolution"/> - <button icon="gtk-go-back" string="" - name="stage_previous" type="object" - states="open,draft,pending,done,cancel" /> - <button icon="gtk-go-forward" string="" - name="stage_next" type="object" - states="open,draft,pending,done,cancel" /> - <field name="type_id" string="Version"/> - <field name="user_id"/> - <field name="state"/> - <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> - <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> - <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> - <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> - <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/> - </tree> - </field> - </record> + <group col="2" colspan="2"> + <separator string="References" colspan="2"/> + <field name="id"/> + <field name="active"/> + </group> + <field name="log_ids" nolabel="1" colspan="4"> + <form string="Actions"> + <separator string="Action Information" colspan="4"/> + <field name="name" colspan="4"/> + <field name="date" /> + <field name="user_id" /> + <field name="canal_id"/> + </form> + </field> + </page> + <page string="Emails" groups="base.group_extended"> + <group colspan="4"> + <field colspan="4" name="email_cc" string="CC"/> + </group> + <field name="history_line" colspan="4" nolabel="1" mode="form,tree"> + <form string="Communication history"> + <group col="7" colspan="4"> + <field name="date"/> + <field name="email"/> + <field name="canal_id"/> + <button + string="Add a CC" + name="%(crm.action_view_crm_email_add_cc_wizard)d" + icon="gtk-add" type="action"/> + </group> + <newline/> + <field name="description" colspan="4" nolabel="1"/> + <button colspan="4" string="Reply to Last Email" name="%(crm.wizard_crm_send_mail)d" context="{'mail':'reply'}" icon="gtk-undo" type="action"/> + </form> + <tree string="Communication history"> + <field name="description"/> + <field name="email"/> + <field name="date"/> + </tree> + </field> + <button colspan="4" string="Send New Email" name="%(crm.wizard_crm_new_send_mail)d" context="{'mail':'new'}" icon="gtk-go-forward" type="action"/> + </page> + <page string="Worklogs"> + <separator string="Timesheets" colspan="4" /> + <field name="timesheet_ids" colspan="4" nolabel="1" context="{'default_user_id' : user_id, 'default_account_id' : analytic_account_id}"> + <tree editable="top" string="Timesheet"> + <field name="create_date" string="Date" /> + <field name="user_id" readonly="1" /> + <field name="account_id" invisible="0" domain="[('partner_id', '=', parent.partner_id)]" on_change="on_change_account_id(account_id)"/> + <field name="name"/> + <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" widget="float_time"/> + + <field invisible="1" name="journal_id"/> + <field invisible="1" name="product_id"/> + <field invisible="1" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/> + <field invisible="1" name="amount"/> + <field invisible="1" name="general_account_id"/> + </tree> + </field> + </page> + </notebook> + </form> + </field> + </record> + <record model="ir.ui.view" id="project_issue_tree_view"> + <field name="name">Project Issue Tracker Tree</field> + <field name="model">project.issue</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Issue Tracker Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> + <field name="id"/> + <field name="name"/> + <field name="partner_id"/> + <field name="priority" string="Severity"/> + <field name="stage_id" string="Resolution"/> + <button icon="gtk-go-back" string="" + name="stage_previous" type="object" + states="open,draft,pending,done,cancel" /> + <button icon="gtk-go-forward" string="" + name="stage_next" type="object" + states="open,draft,pending,done,cancel" /> + <field name="type_id" string="Version"/> + <field name="user_id"/> + <field name="state"/> + <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> + <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> + <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> + <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> + <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> + <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/> + </tree> + </field> + </record> - <record id="view_project_issue_filter" model="ir.ui.view"> - <field name="name">Project Issue Tracker Search</field> - <field name="model">project.issue</field> - <field name="type">search</field> - <field name="arch" type="xml"> - <search string="Issue Tracker Search"> - <group col="3" colspan="1"> - <filter icon="gtk-home" string=" Today " - separator="1" - domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" - help="Todays's bugs" - /> - <filter icon="gtk-media-rewind" - string=" 7 Days " separator="1" - domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" - help="Bugs during last 7 days" - /> + <record id="view_project_issue_filter" model="ir.ui.view"> + <field name="name">Project Issue Tracker Search</field> + <field name="model">project.issue</field> + <field name="type">search</field> + <field name="arch" type="xml"> + <search string="Issue Tracker Search"> + <group col="3" colspan="1"> + <filter icon="gtk-home" string=" Today " + separator="1" + domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" + help="Todays's bugs" + /> + <filter icon="gtk-media-rewind" + string=" 7 Days " separator="1" + domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" + help="Bugs during last 7 days" + /> - </group> - <separator orientation="vertical"/> - <group col="5" colspan="2"> - <field name="name" select='1' string="Subject"/> - <field name="user_id" select="1" widget="selection"> - <filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Bugs" default="1"/> - </field> - <field name="state" select="1"> - <filter icon="gtk-new" domain="[('state','in',('open','draft'))]" help="Current Bugs" default="1"/> - <filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Bugs"/> - </field> - <field name="project_id" select="1" widget="selection" string="Project" default="context.get('project_id', False)"> + </group> + <separator orientation="vertical"/> + <group col="5" colspan="2"> + <field name="name" select='1' string="Subject"/> + <field name="user_id" select="1" widget="selection"> + <filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Bugs" default="1"/> + </field> + <field name="state" select="1"> + <filter icon="gtk-new" domain="[('state','in',('open','draft'))]" help="Current Bugs" default="1"/> + <filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Bugs"/> + </field> + <field name="project_id" select="1" widget="selection" string="Project" default="context.get('project_id', False)"> <filter icon="terp-crm" - domain="[('project_id','=',context.get('project_id',False))]" - help="My Project" - /> - </field> - </group> - </search> - </field> - </record> + domain="[('project_id','=',context.get('project_id',False))]" + help="My Project" + /> + </field> + </group> + </search> + </field> + </record> - <record model="ir.ui.view" id="project_issue_calendar_view"> - <field name="name">Project Issue Tracker Calendar</field> - <field name="model">project.issue</field> - <field name="type">calendar</field> - <field name="priority" eval="2"/> - <field name="arch" type="xml"> - <calendar string="Issues" date_start="date" color="user_id" date_delay="duration"> - <field name="name"/> - <field name="partner_id"/> - </calendar> - </field> - </record> + <record model="ir.ui.view" id="project_issue_calendar_view"> + <field name="name">Project Issue Tracker Calendar</field> + <field name="model">project.issue</field> + <field name="type">calendar</field> + <field name="priority" eval="2"/> + <field name="arch" type="xml"> + <calendar string="Issues" date_start="date" color="user_id" date_delay="duration"> + <field name="name"/> + <field name="partner_id"/> + </calendar> + </field> + </record> - # ------------------------------------------------------ - # Feature Requests - # ------------------------------------------------------ + # ------------------------------------------------------ + # Feature Requests + # ------------------------------------------------------ - <record model="ir.ui.view" id="project_feature_tree_view"> - <field name="name">Project Issue- Feature Tracker Tree</field> - <field name="model">project.issue</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Feature Tracker Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> - <field name="id"/> - <field name="name" string="Feature description"/> - <field name="partner_id"/> - <field name="priority" string="Severity"/> - <field name="stage_id" string="Resolution"/> - <button icon="gtk-go-back" string="" - name="stage_previous" type="object" - states="open,draft,pending,done,cancel" /> - <button icon="gtk-go-forward" string="" - name="stage_next" type="object" - states="open,draft,pending,done,cancel" /> - <field name="type_id" string="Version"/> - <field name="user_id"/> - <field name="state"/> - <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> - <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> - <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> - <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> - <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/> - </tree> - </field> - </record> + <record model="ir.ui.view" id="project_feature_tree_view"> + <field name="name">Project Issue- Feature Tracker Tree</field> + <field name="model">project.issue</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Feature Tracker Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> + <field name="id"/> + <field name="name" string="Feature description"/> + <field name="partner_id"/> + <field name="priority" string="Severity"/> + <field name="stage_id" string="Resolution"/> + <button icon="gtk-go-back" string="" + name="stage_previous" type="object" + states="open,draft,pending,done,cancel" /> + <button icon="gtk-go-forward" string="" + name="stage_next" type="object" + states="open,draft,pending,done,cancel" /> + <field name="type_id" string="Version"/> + <field name="user_id"/> + <field name="state"/> + <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> + <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> + <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> + <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> + <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> + <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/> + </tree> + </field> + </record> - <record id="view_project_feature_filter" model="ir.ui.view"> - <field name="name">Project Issue- Feature Tracker Search</field> - <field name="model">project.issue</field> - <field name="type">search</field> - <field name="arch" type="xml"> - <search string="Feature Tracker Search"> - <group col="3" colspan="1"> - <filter icon="gtk-home" string=" Today " - separator="1" - domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" - help="Todays's features" - /> - <filter icon="gtk-media-rewind" - string=" 7 Days " separator="1" - domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" - help="Features during last 7 days" - /> - </group> - <separator orientation="vertical"/> - <group col="5" colspan="2"> - <field name="name" select='1' string="Feature description"/> - <field name="user_id" select="1" widget="selection"> - <filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Features" default="1"/> - </field> - <field name="state" select="1"> - <filter icon="gtk-new" domain="[('state','in',('open','draft'))]" help="Current Features" default="1"/> - <filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Features"/> - </field> - <field name="project_id" select="1" widget="selection" string="Project" default="context.get('project_id', False)"> + <record id="view_project_feature_filter" model="ir.ui.view"> + <field name="name">Project Issue- Feature Tracker Search</field> + <field name="model">project.issue</field> + <field name="type">search</field> + <field name="arch" type="xml"> + <search string="Feature Tracker Search"> + <group col="3" colspan="1"> + <filter icon="gtk-home" string=" Today " + separator="1" + domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" + help="Todays's features" + /> + <filter icon="gtk-media-rewind" + string=" 7 Days " separator="1" + domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" + help="Features during last 7 days" + /> + </group> + <separator orientation="vertical"/> + <group col="5" colspan="2"> + <field name="name" select='1' string="Feature description"/> + <field name="user_id" select="1" widget="selection"> + <filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Features" default="1"/> + </field> + <field name="state" select="1"> + <filter icon="gtk-new" domain="[('state','in',('open','draft'))]" help="Current Features" default="1"/> + <filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Features"/> + </field> + <field name="project_id" select="1" widget="selection" string="Project" default="context.get('project_id', False)"> <filter icon="terp-crm" - domain="[('project_id','=',context.get('project_id',False))]" - help="My Project" - /> - </field> - </group> - </search> - </field> - </record> + domain="[('project_id','=',context.get('project_id',False))]" + help="My Project" + /> + </field> + </group> + </search> + </field> + </record> </data> </openerp> |
