commit
da4c6bae11
|
@ -2,7 +2,7 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem icon="terp-account" id="menu_finance" name="Financial Management"/>
|
||||
<menuitem icon="terp-account" id="menu_finance" name="Financial Management" sequence="5"/>
|
||||
<menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="8"/>
|
||||
<menuitem id="base.menu_action_currency_form" parent="menu_finance_configuration" sequence="20"/>
|
||||
<menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration"/>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
|
||||
<menuitem id="next_id_71" name="Financial Project Management" parent="base.menu_main_pm" groups="account.group_account_invoice" sequence="20"/>
|
||||
<menuitem id="menu_invoicing" name="Invoicing" parent="next_id_71" sequence="20"/>
|
||||
|
||||
|
|
|
@ -295,7 +295,7 @@
|
|||
menu="False"/>-->
|
||||
|
||||
<!--Menu for project management-->
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
|
||||
<menuitem id="base.menu_pm_invoicing" name="Invoicing" parent="base.menu_main_pm" sequence="7"/>
|
||||
<menuitem id="menu_pm_budget" name="Budgets" parent="base.menu_pm_invoicing"/>
|
||||
<menuitem action="open_budget_post_form" id="menu_pm_budget_post_form" parent="menu_pm_budget"/>
|
||||
|
|
|
@ -115,8 +115,6 @@
|
|||
<field name="search_view_id" ref="view_partner_contact_search"/>
|
||||
</record>
|
||||
<menuitem name="Contacts" id="menu_partner_contact_form" action="action_partner_contact_form" parent = "base.menu_address_book" sequence="2"/>
|
||||
<menuitem name="Addresses" id="base.menu_partner_address_form" parent = "base.menu_address_book" sequence="3"/>
|
||||
|
||||
|
||||
<!-- Views for Partners -->
|
||||
|
||||
|
@ -353,6 +351,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Views for res.partner.job -->
|
||||
<record model="ir.ui.view" id="view_partner_job_tree">
|
||||
<field name="name">res.partner.job.tree</field>
|
||||
|
@ -428,7 +427,7 @@
|
|||
src_model="res.partner.address"
|
||||
/>
|
||||
|
||||
<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Procurement Management"/>
|
||||
<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Procurement Management" sequence="7"/>
|
||||
<menuitem id="base.menu_procurement_management_supplier" name="Suppliers"
|
||||
parent="base.menu_purchase_root" sequence="3"/>
|
||||
<menuitem name="Contacts" id="menu_partner_contact_supplier_form" action="action_partner_contact_form" parent = "base.menu_procurement_management_supplier" sequence="2"/>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
name="base_report_designer.modify"
|
||||
id="wizard_report_designer_modify"/>
|
||||
|
||||
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting"/>
|
||||
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting" sequence="8"/>
|
||||
<menuitem
|
||||
id="base.next_id_50"
|
||||
name="Configuration"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting"/>
|
||||
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting" sequence="8"/>
|
||||
<!-- <menuitem icon="terp-graph" id="dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/>-->
|
||||
<record id="view_board_note_tree" model="ir.ui.view">
|
||||
<field name="name">board.note.tree</field>
|
||||
|
|
|
@ -172,6 +172,99 @@ html_invitation = """
|
|||
</html>
|
||||
"""
|
||||
|
||||
class invite_attendee_wizard(osv.osv_memory):
|
||||
_name = "caldav.invite.attendee"
|
||||
_description = "Invite Attendees"
|
||||
|
||||
_columns = {
|
||||
'type': fields.selection([('internal', 'Internal User'), \
|
||||
('external', 'External Email'), \
|
||||
('partner', 'Partner Contacts')], 'Type', required=True),
|
||||
'user_ids': fields.many2many('res.users', 'invite_user_rel',
|
||||
'invite_id', 'user_id', 'Users'),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'email': fields.char('Email', size=124),
|
||||
'contact_ids': fields.many2many('res.partner.address', 'invite_contact_rel',
|
||||
'invite_id', 'contact_id', 'Contacts'),
|
||||
'send_mail': fields.boolean('Send mail?', help='Check this if you want\
|
||||
to send an Email to Invited Person')
|
||||
}
|
||||
|
||||
def do_invite(self, cr, uid, ids, context={}):
|
||||
datas = self.read(cr, uid, ids)[0]
|
||||
model = False
|
||||
model_field = False
|
||||
if not context or not context.get('model'):
|
||||
return {}
|
||||
else:
|
||||
model = context.get('model')
|
||||
model_field = context.get('attendee_field', False)
|
||||
obj = self.pool.get(model)
|
||||
res_obj = obj.browse(cr, uid, context['active_id'])
|
||||
type = datas.get('type')
|
||||
att_obj = self.pool.get('calendar.attendee')
|
||||
vals = {}
|
||||
mail_to = []
|
||||
if not model == 'calendar.attendee':
|
||||
vals = {'ref': '%s,%s' % (model, caldav_id2real_id(context['active_id']))}
|
||||
|
||||
if type == 'internal':
|
||||
user_obj = self.pool.get('res.users')
|
||||
for user_id in datas.get('user_ids', []):
|
||||
user = user_obj.browse(cr, uid, user_id)
|
||||
if not user.address_id.email:
|
||||
raise osv.except_osv(_('Error!'), \
|
||||
("User does not have an email Address"))
|
||||
vals.update({'user_id': user_id,
|
||||
'email': user.address_id.email})
|
||||
mail_to.append(user.address_id.email)
|
||||
|
||||
elif type == 'external' and datas.get('email'):
|
||||
vals.update({'email': datas['email']})
|
||||
mail_to.append(datas['email'])
|
||||
elif type == 'partner':
|
||||
add_obj = self.pool.get('res.partner.address')
|
||||
for contact in add_obj.browse(cr, uid, datas['contact_ids']):
|
||||
if not contact.email:
|
||||
raise osv.except_osv(_('Error!'), \
|
||||
("Partner does not have an email Address"))
|
||||
vals.update({
|
||||
'partner_address_id': contact.id,
|
||||
'email': contact.email})
|
||||
mail_to.append(contact.email)
|
||||
|
||||
if model == 'calendar.attendee':
|
||||
att = att_obj.browse(cr, uid, context['active_id'])
|
||||
vals.update({
|
||||
'parent_ids' : [(4, att.id)],
|
||||
'ref': att.ref
|
||||
})
|
||||
att_id = att_obj.create(cr, uid, vals)
|
||||
if model_field:
|
||||
obj.write(cr, uid, res_obj.id, {model_field: [(4, att_id)],
|
||||
'state': 'delegated'})
|
||||
|
||||
if datas.get('send_mail'):
|
||||
att_obj._send_mail(cr, uid, [att_id], mail_to, \
|
||||
email_from=tools.config.get('email_from', False))
|
||||
|
||||
return {}
|
||||
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, partner_id, *args, **argv):
|
||||
if not partner_id:
|
||||
return {'value': {'contact_ids': []}}
|
||||
cr.execute('select id from res_partner_address \
|
||||
where partner_id=%s' % (partner_id))
|
||||
contacts = map(lambda x: x[0], cr.fetchall())
|
||||
if not contacts:
|
||||
raise osv.except_osv(_('Error!'), \
|
||||
("Partner does not have any Contacts"))
|
||||
|
||||
return {'value': {'contact_ids': contacts}}
|
||||
|
||||
invite_attendee_wizard()
|
||||
|
||||
class calendar_attendee(osv.osv):
|
||||
_name = 'calendar.attendee'
|
||||
_description = 'Attendee information'
|
||||
|
@ -206,10 +299,14 @@ class calendar_attendee(osv.osv):
|
|||
else:
|
||||
result[id][name] = self._get_address(None, attdata.email)
|
||||
if name == 'delegated_to':
|
||||
todata = map(lambda x:('MAILTO:' + x.email) or '', attdata.del_to_user_ids)
|
||||
todata = []
|
||||
for parent in attdata.parent_ids:
|
||||
todata.append('MAILTO:' + parent.email)
|
||||
result[id][name] = ', '.join(todata)
|
||||
if name == 'delegated_from':
|
||||
fromdata = map(lambda x:('MAILTO:' + x.email) or '', attdata.del_from_user_ids)
|
||||
fromdata = []
|
||||
for child in attdata.child_ids:
|
||||
fromdata.append('MAILTO:' + child.email)
|
||||
result[id][name] = ', '.join(fromdata)
|
||||
if name == 'event_date':
|
||||
if attdata.ref:
|
||||
|
@ -277,13 +374,11 @@ class calendar_attendee(osv.osv):
|
|||
'delegated_to': fields.function(_compute_data, method=True, \
|
||||
string='Delegated To', type="char", size=124, store=True, \
|
||||
multi='delegated_to', help="The users that the original \
|
||||
request was delegated to"),
|
||||
'del_to_user_ids': fields.many2many('calendar.attendee', 'att_del_to_user_rel',
|
||||
'attendee_id', 'user_id', 'Users'),
|
||||
request was delegated to"),
|
||||
'delegated_from': fields.function(_compute_data, method=True, string=\
|
||||
'Delegated From', type="char", store=True, size=124, multi='delegated_from'),
|
||||
'del_from_user_ids': fields.many2many('calendar.attendee', 'att_del_from_user_rel', \
|
||||
'attendee_id', 'user_id', 'Users'),
|
||||
'Delegated From', type="char", store=True, size=124, multi='delegated_from'),
|
||||
'parent_ids': fields.many2many('calendar.attendee', 'calendar_attendee_parent_rel', 'attendee_id', 'parent_id', 'Delegrated From'),
|
||||
'child_ids': fields.many2many('calendar.attendee', 'calendar_attendee_child_rel', 'attendee_id', 'child_id', 'Delegrated To'),
|
||||
'sent_by': fields.function(_compute_data, method=True, string='Sent By', type="char", multi='sent_by', store=True, size=124, help="Specify the user that is acting on behalf of the calendar user"),
|
||||
'sent_by_uid': fields.function(_compute_data, method=True, string='Sent By User', type="many2one", relation="res.users", multi='sent_by_uid'),
|
||||
'cn': fields.function(_compute_data, method=True, string='Common name', type="char", size=124, multi='cn', store=True),
|
||||
|
@ -302,7 +397,7 @@ request was delegated to"),
|
|||
'state': lambda *x: 'needs-action',
|
||||
}
|
||||
|
||||
response_re = response_re = re.compile("Are you coming\?.*(YES|NO|MAYBE).*", re.UNICODE)
|
||||
response_re = response_re = re.compile("Are you coming\?.*\n*.*(YES|NO|MAYBE).*", re.UNICODE)
|
||||
|
||||
def msg_new(self, cr, uid, msg):
|
||||
return False
|
||||
|
@ -326,6 +421,43 @@ request was delegated to"),
|
|||
self.write(cr, uid, ids, {'state': status})
|
||||
return True
|
||||
|
||||
def _send_mail(self, cr, uid, ids, mail_to, email_from=tools.config.get('email_from', False), context={}):
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.name
|
||||
for att in self.browse(cr, uid, ids, context=context):
|
||||
sign = att.sent_by_uid and att.sent_by_uid.signature or ''
|
||||
sign = '<br>'.join(sign and sign.split('\n') or [])
|
||||
model, res_id = tuple(att.ref.split(','))
|
||||
res_obj = self.pool.get(model).browse(cr, uid, res_id)
|
||||
if res_obj and len(res_obj):
|
||||
res_obj = res_obj[0]
|
||||
sub = '[%s Invitation][%d] %s' % (company, att.id, res_obj.name)
|
||||
att_infos = []
|
||||
other_invitaion_ids = self.search(cr, uid, [('ref','=',att.ref)])
|
||||
for att2 in self.browse(cr, uid, other_invitaion_ids):
|
||||
att_infos.append(((att2.user_id and att2.user_id.name) or \
|
||||
(att2.partner_id and att2.partner_id.name) or \
|
||||
att2.email) + ' - Status: ' + att2.state.title())
|
||||
body_vals = {'name': res_obj.name,
|
||||
'start_date': res_obj.date,
|
||||
'end_date': res_obj.date_deadline or None,
|
||||
'description': res_obj.description or '-',
|
||||
'location': res_obj.location or '-',
|
||||
'attendees': '<br>'.join(att_infos),
|
||||
'user': res_obj.user_id and res_obj.user_id.name or 'OpenERP User',
|
||||
'sign': sign,
|
||||
'company': company
|
||||
}
|
||||
body = html_invitation % body_vals
|
||||
if mail_to and email_from:
|
||||
tools.email_send(
|
||||
email_from,
|
||||
mail_to,
|
||||
sub,
|
||||
body,
|
||||
subtype='html',
|
||||
reply_to=email_from
|
||||
)
|
||||
return True
|
||||
def onchange_user_id(self, cr, uid, ids, user_id, *args, **argv):
|
||||
if not user_id:
|
||||
return {'value': {'email': ''}}
|
||||
|
@ -1140,112 +1272,4 @@ class res_users(osv.osv):
|
|||
string='Free/Busy', method=True),
|
||||
}
|
||||
res_users()
|
||||
|
||||
class invite_attendee_wizard(osv.osv_memory):
|
||||
_name = "caldav.invite.attendee"
|
||||
_description = "Invite Attendees"
|
||||
|
||||
_columns = {
|
||||
'type': fields.selection([('internal', 'Internal User'), \
|
||||
('external', 'External Email'), \
|
||||
('partner', 'Partner Contacts')], 'Type', required=True),
|
||||
'user_ids': fields.many2many('res.users', 'invite_user_rel',
|
||||
'invite_id', 'user_id', 'Users'),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'email': fields.char('Email', size=124),
|
||||
'contact_ids': fields.many2many('res.partner.address', 'invite_contact_rel',
|
||||
'invite_id', 'contact_id', 'Contacts'),
|
||||
}
|
||||
|
||||
def do_invite(self, cr, uid, ids, context={}):
|
||||
model2field = {
|
||||
'calendar.attendee': 'del_to_user_ids',
|
||||
'crm.meeting': 'attendee_ids'}
|
||||
datas = self.read(cr, uid, ids)[0]
|
||||
if not context or not context.get('model'):
|
||||
return {}
|
||||
else:
|
||||
model = context.get('model')
|
||||
obj = self.pool.get(model)
|
||||
res_obj = obj.browse(cr, uid, context['active_id'])
|
||||
type = datas.get('type')
|
||||
att_obj = self.pool.get('calendar.attendee')
|
||||
vals = {}
|
||||
if not model == 'calendar.attendee':
|
||||
vals = {'ref': '%s,%s' % (model, caldav_id2real_id(context['active_id']))}
|
||||
if type == 'internal':
|
||||
user_obj = self.pool.get('res.users')
|
||||
for user_id in datas.get('user_ids', []):
|
||||
user = user_obj.browse(cr, uid, user_id)
|
||||
if not user.address_id.email:
|
||||
raise osv.except_osv(_('Error!'), \
|
||||
("User does not have an email Address"))
|
||||
vals.update({'user_id': user_id,
|
||||
'email': user.address_id.email})
|
||||
att_id = att_obj.create(cr, uid, vals)
|
||||
obj.write(cr, uid, res_obj.id, {model2field[model]: [(4, att_id)]})
|
||||
|
||||
elif type == 'external' and datas.get('email'):
|
||||
vals.update({'email': datas['email']})
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.name
|
||||
att_infos = []
|
||||
for att in res_obj.attendee_ids:
|
||||
att_infos.append(((att.user_id and att.user_id.name) or \
|
||||
(att.partner_id and att.partner_id.name) or \
|
||||
att.email) + ' - Status: ' + att.state.title())
|
||||
att_id = att_obj.create(cr, uid, vals)
|
||||
obj.write(cr, uid, res_obj.id, {model2field[model]: [(4, att_id)]})
|
||||
sign = res_obj.user_id and res_obj.user_id.signature or ''
|
||||
sign = '<br>'.join(sign and sign.split('\n') or [])
|
||||
sub = '[%s Invitation][%d] %s' % (company, att_id, res_obj.name)
|
||||
body_vals = {'name': res_obj.name,
|
||||
'start_date': res_obj.date,
|
||||
'end_date': res_obj.date_deadline or None,
|
||||
'description': res_obj.description or '-',
|
||||
'location': res_obj.location or '-',
|
||||
'attendees': '<br>'.join(att_infos),
|
||||
'user': res_obj.user_id and res_obj.user_id.name or 'OpenERP User',
|
||||
'sign': sign,
|
||||
'company': company
|
||||
}
|
||||
body = html_invitation % body_vals
|
||||
mail_to = [datas['email']]
|
||||
tools.email_send(
|
||||
tools.config.get('email_from', False),
|
||||
mail_to,
|
||||
sub,
|
||||
body,
|
||||
subtype='html',
|
||||
reply_to=tools.config.get('email_from', False)
|
||||
)
|
||||
|
||||
elif type == 'partner':
|
||||
add_obj = self.pool.get('res.partner.address')
|
||||
for contact in add_obj.browse(cr, uid, datas['contact_ids']):
|
||||
if not contact.email:
|
||||
raise osv.except_osv(_('Error!'), \
|
||||
("Partner does not have an email Address"))
|
||||
vals.update({
|
||||
'partner_address_id': contact.id,
|
||||
'email': contact.email})
|
||||
att_id = att_obj.create(cr, uid, vals)
|
||||
obj.write(cr, uid, res_obj.id, {model2field[model]: [(4, att_id)]})
|
||||
return {}
|
||||
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, partner_id, *args, **argv):
|
||||
if not partner_id:
|
||||
return {'value': {'contact_ids': []}}
|
||||
cr.execute('select id from res_partner_address \
|
||||
where partner_id=%s' % (partner_id))
|
||||
contacts = map(lambda x: x[0], cr.fetchall())
|
||||
if not contacts:
|
||||
raise osv.except_osv(_('Error!'), \
|
||||
("Partner does not have any Contacts"))
|
||||
|
||||
return {'value': {'contact_ids': contacts}}
|
||||
|
||||
invite_attendee_wizard()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Invite People">
|
||||
<field name="type" />
|
||||
<field name="send_mail" />
|
||||
<newline/>
|
||||
<group col="1" colspan="4"
|
||||
attrs="{'invisible': [('type', '!=', 'external')]}">
|
||||
|
@ -84,28 +85,28 @@
|
|||
<field name="ref" colspan="4" readonly="1"/>
|
||||
</page>
|
||||
<page string="Delegation Info">
|
||||
<separator string="Delegated to" colspan="4" />
|
||||
<field name="del_to_user_ids" nolabel="1"
|
||||
<separator string="Delegated From" colspan="4" />
|
||||
<field name="parent_ids" nolabel="1"
|
||||
colspan="4" readonly="1" />
|
||||
<separator string="Delegated from" colspan="4" />
|
||||
<field name="del_from_user_ids" nolabel="1"
|
||||
<separator string="Delegated To" colspan="4" />
|
||||
<field name="child_ids" nolabel="1"
|
||||
colspan="4" readonly="1" />
|
||||
</page>
|
||||
</notebook>
|
||||
<group col="6" colspan="4">
|
||||
<field name="state" select="2" />
|
||||
<button name="do_tentative"
|
||||
<button name="do_tentative" states="needs-action,declined,accepted"
|
||||
string="Uncertain" type="object"
|
||||
icon="terp-crm" />
|
||||
<button name="do_accept" string="Accept"
|
||||
<button name="do_accept" string="Accept" states="needs-action,tentative,declined"
|
||||
type="object" icon="gtk-apply" />
|
||||
<button name="do_decline" string="Decline"
|
||||
<button name="do_decline" string="Decline" states="needs-action,tentative,accepted"
|
||||
type="object" icon="gtk-cancel" />
|
||||
<button
|
||||
name="%(caldav.action_view_calendar_invite_attendee_wizard)d"
|
||||
string="Delegate" type="action"
|
||||
icon="gtk-sort-descending"
|
||||
context="{'model' : 'calendar.attendee', 'state' : 'delegated'}" />
|
||||
icon="gtk-sort-descending" states="needs-action,tentative,declined,accepted"
|
||||
context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
|
|
@ -50,37 +50,49 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Claims">
|
||||
<group colspan="4" col="6">
|
||||
<group colspan="4" col="4">
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id" string="Responsible" select="2"/>
|
||||
<newline/>
|
||||
<field name="section_id" widget="selection"/>
|
||||
<field name="date" string="Date of Claim"/>
|
||||
<field name="categ_id" string="Type of claim" select="1" on_change="onchange_categ_id(categ_id)"/>
|
||||
<label string="Stage: " align="1.0"/>
|
||||
<group colspan="1" col="2">
|
||||
<field name="stage_id" select="1" nolabel="1"/>
|
||||
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
|
||||
</group>
|
||||
<field name="planned_cost" string="Claim Cost"/>
|
||||
</group>
|
||||
<group colspan="4" col="4">
|
||||
<notebook>
|
||||
<page string="Claims Info">
|
||||
<field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)" colspan="1"/>
|
||||
<field name="email_from"/>
|
||||
<field name="partner_phone"/>
|
||||
<field name="partner_mobile"/>
|
||||
<newline/>
|
||||
<field name="planned_cost" string="Claim Cost"/>
|
||||
<field name="probability"/>
|
||||
<newline/>
|
||||
<field name="priority"/>
|
||||
<field name="type_id" string="Type of Action" select="1"/>
|
||||
<field name="ref"/>
|
||||
<field name="ref2"/>
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<group colspan="4" col="4">
|
||||
<field name="partner_id" string="Partner"
|
||||
on_change="onchange_partner_id(partner_id)" />
|
||||
<field name="partner_address_id" string="Contact"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
|
||||
<field name="partner_phone"/>
|
||||
<field name="partner_mobile"/>
|
||||
<field name="email_from"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Status and Categarization"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="user_id" string="Responsible" select="2"/>
|
||||
<field name="section_id" widget="selection"/>
|
||||
<field name="probability"/>
|
||||
<label string="Stage: " align="1.0"/>
|
||||
<group colspan="1" col="2">
|
||||
<field name="stage_id" select="1" nolabel="1"/>
|
||||
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
|
||||
</group>
|
||||
<field name="categ_id" select="1" widget="selection"
|
||||
on_change="onchange_categ_id(categ_id)"
|
||||
domain="[('object_id.model', '=', 'crm.claim')]" />
|
||||
<field name="type_id" string="Type of Action" select="1"
|
||||
domain="[('object_id.model', '=', 'crm.claim')]" />
|
||||
<field name="priority"/>
|
||||
</group>
|
||||
<separator colspan="4" string="References"/>
|
||||
<group colspan="4" col="4">
|
||||
<field name="ref"/>
|
||||
<field name="ref2"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Claim/Action Description"/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<separator colspan="4" string="Status"/>
|
||||
<separator colspan="4" string=""/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
<button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
|
||||
|
@ -90,7 +102,7 @@
|
|||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="History">
|
||||
<page string="History" groups="base.group_extended">
|
||||
<field name="id" select="1"/>
|
||||
<field name="active"/>
|
||||
<field name="canal_id"/>
|
||||
|
@ -137,6 +149,7 @@
|
|||
<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>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -59,27 +59,34 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Funds Form">
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" select="1" string="Name" colspan="2"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<field name="categ_id" select="1" on_change="onchange_categ_id(categ_id)"/>
|
||||
<newline/>
|
||||
<field name="date" string="Next Meeting"/>
|
||||
<field name="duration"/>
|
||||
<field name="type_id" select="1" string="Payment Mode"/>
|
||||
<group colspan="4" col="4">
|
||||
<field name="name" select="1" string="Name"/>
|
||||
<field name="type_id" string="Payment Mode" select="1" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.fundraising')]" />
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Funds">
|
||||
<field name="partner_id" select="1" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
|
||||
<field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)" colspan="1"/>
|
||||
<newline/>
|
||||
<field name="email_from" colspan="2"/>
|
||||
<field name="user_id" select="2" string="Responsible"/>
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<group colspan="4" col="4">
|
||||
<field name="partner_id" select="1" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
|
||||
<field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)" colspan="1"/>
|
||||
<field name="email_from" colspan="2"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Estimates"/>
|
||||
<field name="planned_cost"/>
|
||||
<field name="planned_revenue"/>
|
||||
<field name="probability"/>
|
||||
<separator colspan="4" string="Description Information"/>
|
||||
<separator colspan="4" string="Categarization"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="user_id" select="2" string="Responsible"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<field name="categ_id" select="1"
|
||||
on_change="onchange_categ_id(categ_id)" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.fundraising')]" />
|
||||
<field name="date"/>
|
||||
<field name="duration"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Details"/>
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
|
@ -92,7 +99,7 @@
|
|||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="History">
|
||||
<page string="History" groups="base.group_extended">
|
||||
<field name="id" select="1"/>
|
||||
<field name="active"/>
|
||||
<field name="priority" string="Priority"/>
|
||||
|
@ -117,7 +124,7 @@
|
|||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Emails">
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
</group>
|
||||
|
|
|
@ -25,27 +25,31 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Helpdesk Support">
|
||||
<group colspan="4" col="7">
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field name="section_id" widget="selection"/>
|
||||
<newline/>
|
||||
<group colspan="4" col="4">
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="date_deadline" select="2"/>
|
||||
<field name="priority"/>
|
||||
<field name="date_deadline" select="2"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<group col="8" colspan="4">
|
||||
<field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" select="1"/>
|
||||
<field colspan="3" name="partner_address_id" on_change="onchange_partner_address_id(partner_address_id, email_from)" select="2"/>
|
||||
<newline/>
|
||||
<field colspan="3" name="email_from" select="2"/>
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<group col="7" colspan="4">
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" select="1"/>
|
||||
<field name="partner_address_id" on_change="onchange_partner_address_id(partner_address_id, email_from)" select="2"/>
|
||||
|
||||
<field name="email_from" select="2"/>
|
||||
<button name="remind_partner" states="open,pending" string="Send Reminder" type="object" icon="gtk-go-forward"/>
|
||||
|
||||
</group>
|
||||
<separator colspan="4" string="Categarization"/>
|
||||
<group col="7" colspan="4">
|
||||
<field name="priority"/>
|
||||
<field name="section_id" widget="selection"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<button name="remind_user" states="open,pending" string="Send Reminder" type="object" icon="gtk-go-forward"/>
|
||||
</group>
|
||||
|
||||
<separator colspan="4" string="Description"/>
|
||||
<separator colspan="4" string="Details"/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
|
@ -58,7 +62,7 @@
|
|||
<button name="case_reset" states="done,cancel" string="Reset to Draft" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="History">
|
||||
<page string="History" groups="base.group_extended">
|
||||
<field name="id" select="1"/>
|
||||
<field name="active" select="2"/>
|
||||
<field name="categ_id" on_change="onchange_categ_id(categ_id)" select="2"/>
|
||||
|
@ -84,7 +88,7 @@
|
|||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Emails">
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
</group>
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<group colspan="4" col="4">
|
||||
<notebook>
|
||||
<page string="Leads">
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<field name="partner_id" string="Partner"
|
||||
on_change="onchange_partner_id(partner_id)" />
|
||||
<field name="partner_address_id"
|
||||
|
@ -58,17 +58,17 @@
|
|||
<group colspan="4" col="6">
|
||||
<field name="user_id" select="2"/>
|
||||
<field name="stage_id" select="1" string="Status" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<field name="categ_id" select="1" on_change="onchange_categ_id(categ_id)" string="Lead Source" widget="selection" domain="[('object_id.model', '=', 'crm.opportunity')]"/>
|
||||
|
||||
<field name="categ_id" select="1"
|
||||
on_change="onchange_categ_id(categ_id)"
|
||||
string="Lead Source" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.opportunity')]" />
|
||||
<field name="type_id" string="Campaign" select="1"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<field name="priority" string="Priority"/>
|
||||
|
||||
<field name="date" string="Create Date"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Details"/>
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="2"/>
|
||||
|
@ -105,13 +105,13 @@
|
|||
<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"/>
|
||||
<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>
|
||||
</group>
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -123,7 +123,7 @@
|
|||
<tree string="Leads Tree" colors="red:state=='open';black:state in ('draft', 'pending');grey: state in ('cancel','done')">
|
||||
<field name="partner_name" string="Lead Name"/>
|
||||
<field name="stage_id" string="Status"/>
|
||||
<field name="create_date"/>
|
||||
<field name="date" string="Create Date"/>
|
||||
<field name="categ_id" string="Lead Source"/>
|
||||
<field name="email_from" string="Email"/>
|
||||
<field name="user_id"/>
|
||||
|
|
|
@ -24,19 +24,17 @@
|
|||
<field name="model">crm.meeting</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Meetings Form">
|
||||
<group col="4" colspan="6">
|
||||
<field name="name" select="1" string="Summary"
|
||||
colspan="3" />
|
||||
<field name="section_id" widget="selection"
|
||||
colspan="1" />
|
||||
</group>
|
||||
<group col="6" colspan="6">
|
||||
<form string="Meetings Form">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1" string="Summary"
|
||||
colspan="4" />
|
||||
<field name="location" />
|
||||
<field name="date" string="Start Date" required="1" />
|
||||
<field name="duration" widget="float_time" />
|
||||
<field name="date_deadline" string="End Date" required="1" />
|
||||
<field name="location" />
|
||||
|
||||
<field name="categ_id"/>
|
||||
<field name="alarm_id" string="Reminder" widget="selection" />
|
||||
<group colspan="2" col="3" attrs="{'readonly':[('recurrent_uid','!=',False)]}">
|
||||
<field name="rrule_type" string="Recurrency"
|
||||
on_change="onchange_rrule_type(rrule_type)"
|
||||
|
@ -58,7 +56,7 @@
|
|||
<button string="Invite People"
|
||||
name="%(caldav.action_view_calendar_invite_attendee_wizard)d"
|
||||
icon="terp-partner" type="action"
|
||||
context="{'model' : 'crm.meeting'}" colspan="2"/>
|
||||
context="{'model' : 'crm.meeting', 'attendee_field':'attendee_ids'}" colspan="2"/>
|
||||
<field name="attendee_ids" colspan="4"
|
||||
nolabel="1" widget="one2many" mode="tree,form">
|
||||
<tree string="Atendee details" editable="top">
|
||||
|
@ -87,10 +85,11 @@
|
|||
</page>
|
||||
<page string="Other Information">
|
||||
<field name="priority"/>
|
||||
<field name="show_as"/>
|
||||
<field name="alarm_id" string="Reminder" widget="selection" />
|
||||
<field name="show_as"/>
|
||||
<field name="class"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" widget="selection"
|
||||
/>
|
||||
<field name="vtimezone"/>
|
||||
<field name="recurrent_id" invisible="1" />
|
||||
<field name="recurrent_uid" invisible="1" />
|
||||
|
@ -115,8 +114,8 @@
|
|||
<tree string="Meetings Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
|
||||
<field name="id" widget="char"/>
|
||||
<field name="name" string="Title"/>
|
||||
<field name="date" string="Next Meeting"/>
|
||||
<field name="section_id" widget="selection"/>
|
||||
<field name="date" string="Meeting Date"/>
|
||||
<field name="section_id" />
|
||||
<field name="priority"/>
|
||||
<field name="categ_id"/>
|
||||
<field name="user_id"/>
|
||||
|
@ -162,7 +161,7 @@
|
|||
<search string="Search Meetings">
|
||||
<group col="12" colspan="4">
|
||||
<filter icon="terp-crm" string="My Meetings" domain="[('user_id','=',uid)]" help="My Meetings"/>
|
||||
<filter icon="terp-crm" string="Draft" domain="[('state','in',('draft', 'open'))]" default="1" help="Current Meetings"/>
|
||||
<filter icon="terp-crm" string="Current" domain="[('state','in',('draft', 'open'))]" default="1" help="Current Meetings"/>
|
||||
<filter icon="terp-crm" string="Confirmed" domain="[('state','=','done')]" help="Confirmed Meetings"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1" string="Subject"/>
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<field name="planned_revenue" required="1"/>
|
||||
<field name="planned_cost"/>
|
||||
<field name="probability"/>
|
||||
<field name="date_deadline" string="Excepted Close Date" required="1"/>
|
||||
<field name="date_deadline" string="Expected Close Date" required="1"/>
|
||||
<group colspan="4" col="5">
|
||||
<label string="" colspan="2"/>
|
||||
<button string="Schedule Meeting"
|
||||
|
@ -91,7 +91,7 @@
|
|||
</group>
|
||||
</page>
|
||||
|
||||
<page string="History">
|
||||
<page string="History" groups="base.group_extended">
|
||||
<field name="active"/>
|
||||
<field name="canal_id"/>
|
||||
<field name="som"/>
|
||||
|
@ -114,7 +114,7 @@
|
|||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Emails">
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
</group>
|
||||
|
|
|
@ -77,53 +77,64 @@
|
|||
<field name="model">crm.phonecall</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Phone Call">
|
||||
<group colspan="4" col="4">
|
||||
<field name="name" string="Subject"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<field name="user_id" string="Assigned to" select="2"/>
|
||||
<field name="date" string="Planned Date"/>
|
||||
<field name="duration"/>
|
||||
<field name="opportunity_id" on_change="onchange_case_id(case_id, name, partner_id)"
|
||||
context="{'default_name':name,'default_section_id':section_id,'default_user_id':user_id,'default_duration':duration,
|
||||
'default_partner_id':partner_id,'default_partner_address_id':partner_address_id,'default_partner_phone':partner_phone,
|
||||
'default_partner_mobile':partner_mobile,'default_categ_id':categ_id}"/>
|
||||
<newline/>
|
||||
<group col="5" colspan="4">
|
||||
<label string="" colspan="2"/>
|
||||
<button string="Schedule a Meeting"
|
||||
name="%(wizard_crm_phonecall_meeting_set)d" icon="gtk-redo" type="action" />
|
||||
<button string="Convert to Opportunity" name="%(wizard_crm_phonecall_opportunity_set)d" icon="gtk-index" type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<field name="categ_id" string="Direction" select="1" on_change="onchange_categ_id(categ_id)" required="1" readonly="1"/>
|
||||
<field name="active" string="Reminder"/>
|
||||
<group colspan="2" col="3">
|
||||
<field name="partner_id" string="Partner"/>
|
||||
<button string="Convert to Partner" icon="terp-crm" name="%(wizard_crm_phonecall_partner_create)d" type="action" attrs="{'invisible':[('partner_id','!=',False)]}" />
|
||||
</group>
|
||||
<field name="partner_address_id" string="Contact"/>
|
||||
<field name="partner_phone"/>
|
||||
<field name="partner_mobile"/>
|
||||
<newline/>
|
||||
<field name="som"/>
|
||||
<field name="priority" string="Relevant"/>
|
||||
<separator string= "Description" colspan="4"/>
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
|
||||
<button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-undo"/>
|
||||
<button name="case_close" string="Held" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
|
||||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</group>
|
||||
</form>
|
||||
<form string="Phone Call">
|
||||
<group colspan="4" col="4">
|
||||
<field name="name" string="Subject" />
|
||||
<field name="date" string="Planned Date" />
|
||||
<field name="partner_phone" />
|
||||
<field name="duration" />
|
||||
<newline />
|
||||
<group col="7" colspan="4">
|
||||
<label string="" colspan="2" />
|
||||
<button string="Schedule a Meeting"
|
||||
name="%(wizard_crm_phonecall_meeting_set)d" icon="gtk-redo"
|
||||
type="action" />
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(wizard_crm_phonecall_opportunity_set)d"
|
||||
icon="gtk-index" type="action"
|
||||
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
<button string="Convert to Partner"
|
||||
icon="terp-crm"
|
||||
name="%(wizard_crm_phonecall_partner_create)d"
|
||||
type="action"
|
||||
attrs="{'invisible':[('partner_id','!=',False)]}" />
|
||||
</group>
|
||||
<group colspan="4" col="4">
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<separator colspan="4" string="Communication" />
|
||||
<field name="partner_id" />
|
||||
<field name="partner_address_id" string="Contact" />
|
||||
<field name="partner_mobile" />
|
||||
<separator colspan="4" string="Status and Categarization" />
|
||||
<group colspan="4" col="6">
|
||||
<field name="user_id" string="Assigned to" select="2" />
|
||||
<field name="section_id" colspan="1" widget="selection" />
|
||||
<field name="opportunity_id"
|
||||
on_change="onchange_case_id(case_id, name, partner_id)"
|
||||
context="{'default_name':name,'default_section_id':section_id,'default_user_id':user_id,'default_duration':duration,
|
||||
'default_partner_id':partner_id,'default_partner_address_id':partner_address_id,'default_partner_phone':partner_phone,
|
||||
'default_partner_mobile':partner_mobile,'default_categ_id':categ_id}" />
|
||||
<field name="som" />
|
||||
<field name="priority" />
|
||||
<field name="active" string="Reminder" />
|
||||
</group>
|
||||
<separator string="Description" colspan="4" />
|
||||
<field name="description" nolabel="1" colspan="4" />
|
||||
<separator colspan="4" />
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1" />
|
||||
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
|
||||
<button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-undo"/>
|
||||
<button name="case_close" string="Held" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
|
||||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</group>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -312,7 +312,7 @@
|
|||
<button name="case_reset" states="done,cancel" string="Reset to Draft" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="History">
|
||||
<page string="History" groups="base.group_extended">
|
||||
<field name="id" select="1"/>
|
||||
<field name="active" select="2"/>
|
||||
<separator colspan="4" string="Dates"/>
|
||||
|
@ -328,7 +328,7 @@
|
|||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Emails">
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
</group>
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<field name="view_id" ref="view_crm_project_bug_user_graph"/>
|
||||
<field name="search_view_id" ref="view_crm_project_bug_user_filter"/>
|
||||
</record>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
|
||||
<menuitem id="base.menu_project_report" name="Reporting" parent="base.menu_main_pm" sequence="50"/>
|
||||
<menuitem name="Project Bug" id="menu_crm_project_bug_tree" parent="base.menu_project_report" sequence="1"/>
|
||||
<menuitem action="action_report_crm_project_bug_user_tree" id="menu_crm_project_bug_user_tree" parent="menu_crm_project_bug_tree"/>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<!--<menuitem name="Document Management" icon="terp-stock" id="menu_document"/>
|
||||
<menuitem name="Document Configuration" id="menu_document_configuration" parent="menu_document"/>-->
|
||||
|
||||
<menuitem name="Knowledge Management" icon="terp-stock" id="base.menu_document"/>
|
||||
<menuitem name="Knowledge Management" icon="terp-stock" id="base.menu_document" sequence="4"/>
|
||||
<menuitem name="Configuration" id="base.menu_document_configuration" parent="base.menu_document" sequence="50"/>
|
||||
<menuitem name="Document Management" id="menu_document_management_configuration" parent="base.menu_document_configuration" sequence="1"/>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem name="Marketing" id="menu_marketing_event_main" icon="terp-calendar" />
|
||||
<menuitem name="Marketing" id="menu_marketing_event_main" icon="terp-calendar" sequence="9"/>
|
||||
<menuitem name="Events Organisation" id="menu_event_main" parent="menu_marketing_event_main" />
|
||||
<!-- EVENTS -->
|
||||
<!--<menuitem name="Events Organisation" id="menu_event_main" icon="terp-calendar" />-->
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="terp-hr" id="menu_hr_root" name="Human Resources"/>
|
||||
<menuitem icon="terp-hr" id="menu_hr_root" name="Human Resources" sequence="6"/>
|
||||
<menuitem id="menu_hr_human_resources" sequence="1" name="Human Resources" parent="menu_hr_root"/>
|
||||
<!-- <menuitem
|
||||
id="menu_hr_reporting"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<menuitem action="si_so" id="menu_si_so" parent="menu_hr_time_tracking" type="wizard" sequence="1"
|
||||
groups="group_hr_attendance"/>
|
||||
<!--Time Tracking menu for Project Management-->
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
|
||||
<menuitem
|
||||
id="base.menu_project_management_time_tracking"
|
||||
name="Time Tracking"
|
||||
|
|
|
@ -220,7 +220,7 @@
|
|||
<field name="search_view_id" ref="view_hr_timesheet_sheet_filter"/>
|
||||
</record>
|
||||
<!--Time Tracking menu in project Management-->
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
|
||||
<menuitem
|
||||
id="base.menu_project_management_time_tracking"
|
||||
name="Time Tracking"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" />
|
||||
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="15"/>
|
||||
<record model="ir.ui.view" id="view_idea_category_form">
|
||||
<field name="name">idea.category.form</field>
|
||||
<field name="model">idea.category</field>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools"/>
|
||||
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="15"/>
|
||||
<!--<menuitem name="Tools" id="menu_tools" icon="STOCK_PREFERENCES"/>
|
||||
<menuitem name="Lunch Order" parent="menu_tools" id="menu_lunch" sequence="1"/>
|
||||
<menuitem name="Reporting" parent="menu_tools" id="menu_lunch_reporting" sequence="4"/>
|
||||
|
|
|
@ -388,6 +388,7 @@ class mail_gateway_history(osv.osv):
|
|||
'name': fields.char('Message Id', size=64, help="Message Id in Email Server."),
|
||||
'res_id': fields.integer("Resource ID"),
|
||||
'gateway_id': fields.many2one('mail.gateway',"Mail Gateway", required=True),
|
||||
'model_id':fields.related('gateway_id', 'object_id', type='many2one', relation='ir.model', string='Model'),
|
||||
'note': fields.text('Notes'),
|
||||
}
|
||||
_order = 'id desc'
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Gateway History">
|
||||
<field name="name"/>
|
||||
<field name="gateway_id"/>
|
||||
<field name="model_id"/>
|
||||
<field name="res_id"/>
|
||||
<separator string="Note" colspan="4"/>
|
||||
<field name="note" nolabel="1" colspan="4"/>
|
||||
|
@ -22,6 +24,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree string="Gateway History">
|
||||
<field name="name" select="1"/>
|
||||
<field name="model_id"/>
|
||||
<field name="res_id"/>
|
||||
<field name="gateway_id"/>
|
||||
</tree>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<data>
|
||||
|
||||
<menuitem icon="terp-mrp" id="menu_mrp_root" name="Manufacturing"
|
||||
groups="group_mrp_user,group_mrp_manager"/>
|
||||
groups="group_mrp_user,group_mrp_manager" sequence="3"/>
|
||||
<menuitem id="menu_mrp_reordering" name="Automatic Procurements" parent="stock.menu_stock_root" sequence="4"/>
|
||||
<menuitem id="menu_mrp_manufacturing" name="Manufacturing" parent="menu_mrp_root" sequence="1"/>
|
||||
|
||||
|
@ -544,7 +544,7 @@
|
|||
<filter string="By Product" icon="terp-mrp" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="By State" icon="terp-mrp" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Scheduled Date" icon="terp-mrp" domain="[]" context="{'group_by':'date_planned'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -762,7 +762,7 @@
|
|||
<filter string="By Product" icon="terp-mrp" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="By State" icon="terp-mrp" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Scheduled Date" icon="terp-mrp" domain="[]" context="{'group_by':'date_planned'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<!-- id="menu_bi"-->
|
||||
<!-- icon="terp-account" parent="base.next_id_50"/>-->
|
||||
|
||||
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting"/>
|
||||
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting" sequence="8"/>
|
||||
<menuitem
|
||||
id="base.next_id_50"
|
||||
name="Configuration"
|
||||
|
|
|
@ -165,7 +165,7 @@
|
|||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem name="Point of Sale" id="menu_point_root" />
|
||||
<menuitem name="Point of Sale" id="menu_point_root" sequence="10"/>
|
||||
<menuitem name="Point of Sale" id="menu_point_of_sale" parent="menu_point_root" sequence="1" />
|
||||
<menuitem name="New Sale" parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="1"/>
|
||||
<menuitem action="product.product_normal_action" id="menu_pos_products" parent="menu_point_of_sale" sequence="2" name="Products"/>
|
||||
|
|
|
@ -371,13 +371,14 @@ class task(osv.osv):
|
|||
'ref_doc2': 'project.project,%d'% (project.id,),
|
||||
})
|
||||
self.write(cr, uid, [task.id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
|
||||
if task.parent_ids and task.parent_ids.state in ('pending','draft'):
|
||||
reopen = True
|
||||
for child in task.parent_ids.child_ids:
|
||||
if child.id != task.id and child.state not in ('done','cancelled'):
|
||||
reopen = False
|
||||
if reopen:
|
||||
self.do_reopen(cr, uid, [task.parent_ids.id])
|
||||
for parent_id in task.parent_ids:
|
||||
if parent_id.state in ('pending','draft'):
|
||||
reopen = True
|
||||
for child in parent_id.child_ids:
|
||||
if child.id != task.id and child.state not in ('done','cancelled'):
|
||||
reopen = False
|
||||
if reopen:
|
||||
self.do_reopen(cr, uid, [parent_id.id])
|
||||
return True
|
||||
|
||||
def do_reopen(self, cr, uid, ids, *args):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
|
||||
<menuitem id="menu_project_management" name="Project Management" parent="base.menu_main_pm" sequence="1"/>
|
||||
|
||||
<menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
|
||||
|
@ -364,7 +364,7 @@
|
|||
<field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
|
||||
<field name="state" invisible="context.get('set_visible',False)"/>
|
||||
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/>
|
||||
<button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-execute" help="For changing to delegate state" />
|
||||
<button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-execute" help="For changing to delegate state" invisible="context.get('show_delegated',True)" />
|
||||
<button name="%(wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to" help="For changing to done state"/>
|
||||
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
|
||||
</tree>
|
||||
|
|
|
@ -52,12 +52,12 @@ class wizard_delegate(wizard.interface):
|
|||
task_obj = pooler.get_pool(cr.dbname).get('project.task')
|
||||
task = task_obj.browse(cr, uid, data['id'], context)
|
||||
newname = data['form']['prefix'] or ''
|
||||
task_obj.copy(cr, uid, data['id'], {
|
||||
new_task_id = task_obj.copy(cr, uid, data['id'], {
|
||||
'name': data['form']['name'],
|
||||
'user_id': data['form']['user_id'],
|
||||
'planned_hours': data['form']['planned_hours'],
|
||||
'remaining_hours': data['form']['planned_hours'],
|
||||
'parent_id': data['id'],
|
||||
'parent_ids': [(6, 0, [data['id']])],
|
||||
'state': 'open',
|
||||
'description': data['form']['new_task_description'] or '',
|
||||
'child_ids': [],
|
||||
|
@ -65,7 +65,8 @@ class wizard_delegate(wizard.interface):
|
|||
})
|
||||
task_obj.write(cr, uid, [data['id']], {
|
||||
'remaining_hours': data['form']['planned_hours_me'],
|
||||
'name': newname
|
||||
'name': newname,
|
||||
'child_ids': [(6, 0, [new_task_id])]
|
||||
})
|
||||
if data['form']['state']=='pending':
|
||||
task_obj.do_pending(cr, uid, [data['id']])
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!--<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Purchase Management"
|
||||
groups="group_purchase_user"/>-->
|
||||
<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Procurement Management"
|
||||
groups="group_purchase_user"/>
|
||||
groups="group_purchase_user" sequence="7"/>
|
||||
<menuitem id="menu_procurement_management" name="Procurement Management"
|
||||
parent="base.menu_purchase_root" sequence="1"/>
|
||||
|
||||
|
@ -165,7 +165,7 @@
|
|||
<filter string="By Supplier" icon="terp-purchase" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="By State" icon="terp-purchase" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Order Date" icon="terp-purchase" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -370,7 +370,7 @@
|
|||
<field name="view_id" ref="view_random_timesheet_lines_tree"/>
|
||||
</record>
|
||||
<!--Time Tracking menu in project Management-->
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
|
||||
<menuitem
|
||||
id="base.menu_project_management_time_tracking"
|
||||
name="Time Tracking"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="terp-hr" id="menu_hr_root" name="Human Resources"/>
|
||||
<menuitem icon="terp-hr" id="menu_hr_root" name="Human Resources" sequence="6"/>
|
||||
<menuitem
|
||||
id="menu_hr_reporting"
|
||||
name="Reporting"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="terp-project" id="base.menu_main" name="Project Management"/>
|
||||
<menuitem icon="terp-project" id="base.menu_main" name="Project Management" sequence="1"/>
|
||||
<menuitem id="base.menu_pm_resources" name="Resources" parent="base.menu_main" sequence="2"/>
|
||||
|
||||
<record id="resource_calendar_form" model="ir.ui.view">
|
||||
|
|
|
@ -7,33 +7,34 @@
|
|||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sale Orders">
|
||||
<field name="partner_id"/>
|
||||
<field name="partner_id" invisible="True"/>
|
||||
<field name="date_order"/>
|
||||
<field name="invoiced_rate"/>
|
||||
<field name="picked_rate"/>
|
||||
<field name="amount_untaxed"/>
|
||||
<field name="amount_tax"/>
|
||||
<field name="amount_total"/>
|
||||
<field name="amount_total" sum="Total Amount"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_sale_order_report_all" model="ir.actions.act_window">
|
||||
<field name="name">Sale Orders By Month </field>
|
||||
<field name="name">Sale Orders By Customer </field>
|
||||
<field name="res_model">sale.order</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{'report':True}</field>
|
||||
<field name="domain">[('date_order','>=',time.strftime('%Y-%m-01')),('state','<>','draft'),('state','<>','cancel')]</field>
|
||||
<field name="search_view_id" ref="sale.view_sales_order_filter"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_claim01">
|
||||
<record model="ir.actions.act_window.view" id="action_sale_order_01">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="sale.view_sale_order_report_tree"/>
|
||||
<field name="act_window_id" ref="action_sale_order_report_all"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_order_product02">
|
||||
<record model="ir.actions.act_window.view" id="action_sale_order_02">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="sale.view_sale_order_graph"/>
|
||||
|
@ -51,10 +52,11 @@
|
|||
<field name="name"/>
|
||||
<field name="order_id" invisible="True"/>
|
||||
<field name="product_uom_qty" />
|
||||
<field name="product_uom"/>
|
||||
<field name="product_uos_qty"/>
|
||||
<field name="product_uos"/>
|
||||
<field name="product_id"/>
|
||||
<field name="price_unit" />
|
||||
<field name="discount"/>
|
||||
<field name="price_net"/>
|
||||
<field name="price_subtotal" sum="Total"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
|
@ -77,7 +79,7 @@
|
|||
<field name="act_window_id" ref="action_order_report_tree_all"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_order_product02">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="sale.view_order_line_graph"/>
|
||||
<field name="act_window_id" ref="action_order_report_tree_all"/>
|
||||
|
@ -86,7 +88,7 @@
|
|||
<menuitem id="base.next_id_64" name="Reporting" parent="base.menu_base_partner" sequence="8"/>
|
||||
<menuitem action="action_sale_order_report_all" id="menu_report_sale_order_all" parent="base.next_id_64" sequence="3"/>
|
||||
|
||||
<menuitem action="action_order_report_tree_all" id="menu_report_order_product_all1" parent="base.next_id_64" sequence="3"/>
|
||||
<menuitem action="action_order_report_tree_all" id="menu_report_order_product_all1" parent="base.next_id_64" sequence="4"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -244,7 +244,7 @@
|
|||
<field name="date_order" select="1"/>
|
||||
</group>
|
||||
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="8">
|
||||
<filter string="By Parnter" icon="terp-sale" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="By Customer" icon="terp-sale" domain="[]" default="1" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="By State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Order Date" icon="terp-sale" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
</group>
|
||||
|
@ -412,9 +412,9 @@
|
|||
<filter icon="terp-sale" domain="[('salesman_id','child_of',[uid])]" help="My Departments Sale Order Lines"/>
|
||||
</field>
|
||||
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="8">
|
||||
<filter string="By Product" icon="terp-sale" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="By Product" icon="terp-sale" default="1" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="By Order" icon="terp-sale" domain="[]" context="{'group_by':'order_id'}"/>
|
||||
<filter string="By State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Scheduled" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"access_account_invoice_salesman","account_invoice salesman","account.model_account_invoice","group_sale_user",1,1,1,1
|
||||
"access_account_invoice_line_salesman","account_invoice.line salesman","account.model_account_invoice_line","group_sale_user",1,1,1,1
|
||||
"access_account_payment_term_salesman","account_payment_term salesman","account.model_account_payment_term","group_sale_user",1,0,0,0
|
||||
"access_account_analytic_account_salesman","account_analytic_account salesman","account.model_account_analytic_account","group_sale_user",1,1,1,1
|
||||
"access_account_analytic_account_salesman","account_analytic_account salesman","analytic.model_account_analytic_account","group_sale_user",1,1,1,1
|
||||
"access_stock_picking_salesman","stock_picking salesman","stock.model_stock_picking","group_sale_user",1,1,1,1
|
||||
"access_stock_move_salesman","stock_move salesman","stock.model_stock_move","group_sale_user",1,1,1,0
|
||||
"access_mrp_property_salesman","mrp.property salesman","mrp.model_mrp_property","group_sale_user",1,0,0,0
|
||||
|
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
<record id="process_node_contractanalytic0" model="process.node">
|
||||
<field name="menu_id" ref="account.account_analytic_def_account"/>
|
||||
<field name="model_id" ref="account.model_account_analytic_account"/>
|
||||
<field name="model_id" ref="analytic.model_account_analytic_account"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Analytic account"""" name="name"/>
|
||||
<field eval=""""Reflect the contract made with customer"""" name="note"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="terp-stock" id="menu_stock_root" name="Warehouse"/>
|
||||
<menuitem icon="terp-stock" id="menu_stock_root" name="Warehouse" sequence="2"/>
|
||||
<menuitem id="menu_stock_warehouse_mgmt" name="Warehouse Management" parent="menu_stock_root" sequence="1"/>
|
||||
<menuitem id="menu_stock_product" name="Product" parent="menu_stock_root" sequence="3"/>
|
||||
<menuitem action="product.product_normal_action" id="menu_stock_products_menu" parent="menu_stock_product" sequence="1"/>
|
||||
|
@ -669,7 +669,7 @@
|
|||
<filter string="By Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
|
||||
<filter string="By State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -794,8 +794,8 @@
|
|||
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="10">
|
||||
<filter string="By Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
|
||||
<filter string="By State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Order Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
<filter string="By Order Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -953,7 +953,7 @@
|
|||
<filter string="By Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
|
||||
<filter string="By State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -1113,7 +1113,7 @@
|
|||
<filter string="By Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
|
||||
<filter string="By State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -1166,7 +1166,7 @@
|
|||
<filter string="By Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
|
||||
<filter string="By State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -1285,7 +1285,7 @@
|
|||
<filter string="By State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Destion Location" icon="terp-stock" domain="[]" context="{'group_by':'location_dest_id'}"/>
|
||||
<filter string="By Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -1409,7 +1409,7 @@
|
|||
<filter string="By Product" icon="terp-stock" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="By State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools"/>
|
||||
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="15"/>
|
||||
<!-- <menuitem icon="STOCK_PREFERENCES" id="menu_tools" name="Tools"/>-->
|
||||
<menuitem id="next_id_45" name="Recurring Events" parent="base.menu_tools" sequence="2"/>
|
||||
<!-- <menuitem id="menu_subscription_config" name="Configuration" parent="next_id_45"/>-->
|
||||
|
|
|
@ -158,7 +158,7 @@ class survey_browse_response(report_rml):
|
|||
<para style="terp_tblheader_General_Centre">Response Create Date </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Respose By </para>
|
||||
<para style="terp_tblheader_General_Centre">Response By </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Status</para>
|
||||
|
@ -243,17 +243,17 @@ class survey_browse_response(report_rml):
|
|||
ans_list = []
|
||||
for ans in answer[0].response_answer_ids:
|
||||
ans_list.append(to_xml(tools.ustr(ans.answer_id.answer)))
|
||||
|
||||
|
||||
answer_choice=[]
|
||||
_divide_columns_for_matrix = 20
|
||||
_display_ans_in_rows = 5
|
||||
_tbl_widths = 500
|
||||
for ans in que['answer_choice_ids']:
|
||||
answer_choice.append(to_xml(tools.ustr((ans.answer))))
|
||||
|
||||
|
||||
def divide_list(lst, n):
|
||||
return [lst[i::n] for i in range(n)]
|
||||
|
||||
|
||||
divide_list = divide_list(answer_choice,_display_ans_in_rows)
|
||||
for lst in divide_list:
|
||||
if que.type == 'multiple_choice_multiple_ans':
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem name="Knowledge Management" icon="terp-stock" id="base.menu_document"/>
|
||||
<menuitem name="Knowledge Management" icon="terp-stock" id="base.menu_document" sequence="4"/>
|
||||
<menuitem name="Configuration" id="base.menu_document_configuration" parent="base.menu_document" sequence="50"/>
|
||||
<menuitem name="Wiki" id="menu_wiki_configuration" parent="base.menu_document_configuration" sequence="2"/>
|
||||
<menuitem id="base.menu_document2" name="Collaborative Content" parent="base.menu_document"/>
|
||||
|
|
Loading…
Reference in New Issue