bzr revid: uco@tinyerp.co.in-20100208104733-n98tx1rgwc6zmrcf
This commit is contained in:
uco (OpenERP) 2010-02-08 16:17:33 +05:30
commit da4c6bae11
44 changed files with 391 additions and 325 deletions

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"

View File

@ -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>

View File

@ -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:

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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" />-->

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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>

View File

@ -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"/>

View File

@ -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'

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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"/>

View File

@ -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):

View File

@ -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>

View File

@ -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']])

View File

@ -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>

View File

@ -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"

View File

@ -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"

View File

@ -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">

View File

@ -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','&gt;=',time.strftime('%Y-%m-01')),('state','&lt;&gt;','draft'),('state','&lt;&gt;','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>

View File

@ -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>

View File

@ -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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
8 access_account_invoice_salesman account_invoice salesman account.model_account_invoice group_sale_user 1 1 1 1
9 access_account_invoice_line_salesman account_invoice.line salesman account.model_account_invoice_line group_sale_user 1 1 1 1
10 access_account_payment_term_salesman account_payment_term salesman account.model_account_payment_term group_sale_user 1 0 0 0
11 access_account_analytic_account_salesman account_analytic_account salesman account.model_account_analytic_account analytic.model_account_analytic_account group_sale_user 1 1 1 1
12 access_stock_picking_salesman stock_picking salesman stock.model_stock_picking group_sale_user 1 1 1 1
13 access_stock_move_salesman stock_move salesman stock.model_stock_move group_sale_user 1 1 1 0
14 access_mrp_property_salesman mrp.property salesman mrp.model_mrp_property group_sale_user 1 0 0 0

View File

@ -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="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Analytic account&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reflect the contract made with customer&quot;&quot;&quot;" name="note"/>

View File

@ -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>

View File

@ -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"/>-->

View File

@ -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':

View File

@ -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"/>