[MERGE] Merge from trunk addons
bzr revid: mra@mra-laptop-20101007040218-ri0quuezltnfetzd
This commit is contained in:
commit
2d904863d3
|
@ -1146,32 +1146,36 @@ class account_move(osv.osv):
|
|||
]
|
||||
|
||||
def post(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
invoice = context.get('invoice', False)
|
||||
valid_moves = self.validate(cr, uid, ids, context)
|
||||
if valid_moves:
|
||||
for move in self.browse(cr, uid, valid_moves):
|
||||
if move.name =='/':
|
||||
new_name = False
|
||||
journal = move.journal_id
|
||||
|
||||
if not valid_moves:
|
||||
raise osv.except_osv(_('Integrity Error !'), _('You cannot validate a non-balanced entry !\nMake sure you have configured Payment Term properly !\nIt should contain atleast one Payment Term Line with type "Balance" !'))
|
||||
|
||||
for move in self.browse(cr, uid, valid_moves):
|
||||
if move.name =='/':
|
||||
new_name = False
|
||||
journal = move.journal_id
|
||||
|
||||
if invoice and invoice.internal_number:
|
||||
new_name = invoice.internal_number
|
||||
if invoice and invoice.internal_number:
|
||||
new_name = invoice.internal_number
|
||||
else:
|
||||
if journal.sequence_id:
|
||||
c = {'fiscalyear_id': move.period_id.fiscalyear_id.id}
|
||||
new_name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id, context=c)
|
||||
else:
|
||||
if journal.sequence_id:
|
||||
c = {'fiscalyear_id': move.period_id.fiscalyear_id.id}
|
||||
new_name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id, context=c)
|
||||
else:
|
||||
raise osv.except_osv(_('Error'), _('No sequence defined in the journal !'))
|
||||
raise osv.except_osv(_('Error'), _('No sequence defined on the journal !'))
|
||||
|
||||
if new_name:
|
||||
self.write(cr, uid, [move.id], {'name':new_name})
|
||||
if new_name:
|
||||
self.write(cr, uid, [move.id], {'name':new_name})
|
||||
|
||||
cr.execute('UPDATE account_move '\
|
||||
'SET state=%s '\
|
||||
'WHERE id IN %s',
|
||||
('posted', tuple(valid_moves),))
|
||||
else:
|
||||
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non-balanced entry !\nMake sure you have configured Payment Term properly !\nIt should contain atleast one Payment Term Line with type "Balance" !'))
|
||||
cr.execute('UPDATE account_move '\
|
||||
'SET state=%s '\
|
||||
'WHERE id IN %s',
|
||||
('posted', tuple(valid_moves),))
|
||||
|
||||
return True
|
||||
|
||||
def button_validate(self, cursor, user, ids, context=None):
|
||||
|
|
|
@ -650,18 +650,19 @@ class account_invoice(osv.osv):
|
|||
return ok
|
||||
|
||||
def button_reset_taxes(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
if context is None:
|
||||
context = {}
|
||||
ctx = context.copy()
|
||||
ait_obj = self.pool.get('account.invoice.tax')
|
||||
for id in ids:
|
||||
cr.execute("DELETE FROM account_invoice_tax WHERE invoice_id=%s", (id,))
|
||||
partner = self.browse(cr, uid, id, context=context).partner_id
|
||||
partner = self.browse(cr, uid, id, context=ctx).partner_id
|
||||
if partner.lang:
|
||||
context.update({'lang': partner.lang})
|
||||
for taxe in ait_obj.compute(cr, uid, id, context=context).values():
|
||||
ctx.update({'lang': partner.lang})
|
||||
for taxe in ait_obj.compute(cr, uid, id, context=ctx).values():
|
||||
ait_obj.create(cr, uid, taxe)
|
||||
# Update the stored value (fields.function), so we write to trigger recompute
|
||||
self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=context)
|
||||
self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=ctx)
|
||||
return True
|
||||
|
||||
def button_compute(self, cr, uid, ids, context=None, set_total=False):
|
||||
|
|
|
@ -200,7 +200,8 @@ class account_automatic_reconcile(osv.osv_memory):
|
|||
"AND partner_id=%s " \
|
||||
"AND reconcile_id IS NULL " \
|
||||
"AND state <> 'draft' " \
|
||||
"AND debit > 0",
|
||||
"AND debit > 0 " \
|
||||
"ORDER BY date_maturity",
|
||||
(account_id, partner_id))
|
||||
debits = cr.fetchall()
|
||||
|
||||
|
@ -212,7 +213,8 @@ class account_automatic_reconcile(osv.osv_memory):
|
|||
"AND partner_id=%s " \
|
||||
"AND reconcile_id IS NULL " \
|
||||
"AND state <> 'draft' " \
|
||||
"AND credit > 0",
|
||||
"AND credit > 0 " \
|
||||
"ORDER BY date_maturity",
|
||||
(account_id, partner_id))
|
||||
credits = cr.fetchall()
|
||||
|
||||
|
|
|
@ -48,8 +48,9 @@
|
|||
|
||||
<record model="ir.actions.todo"
|
||||
id="config_install_module">
|
||||
<field name="action_id" ref="action_config_install_module"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="action_id" ref="action_config_install_module"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Association" id="base.menu_association" icon="terp-calendar" sequence="9" groups="base.group_extended"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<xpath expr="//label[@string='description']" position="attributes">
|
||||
<attribute name="string">This plug-in allows you to create/modify OpenERP Reports into OpenOffice Writer.</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//button[@string='Install Modules']" position="replace">
|
||||
<xpath expr="//button[@string='Install Modules']" position="replace">
|
||||
<button colspan="1" icon="gtk-close" special="cancel" string="_Close" invisible="not context.get('menu',False)"/>
|
||||
<button name="action_next" icon="gtk-go-forward"
|
||||
type="object" string="Configure" colspan="1" invisible="context.get('menu',False)"/>
|
||||
|
@ -29,10 +29,10 @@
|
|||
type="object" string="Skip" colspan="1" invisible="context.get('menu',False)"/>
|
||||
</xpath>
|
||||
<xpath expr='//separator[@string="vsep"]' position='attributes'>
|
||||
<attribute name='string'></attribute>
|
||||
<attribute name='rowspan'>15</attribute>
|
||||
</xpath>
|
||||
<group colspan="8" position="replace">
|
||||
<attribute name='string'></attribute>
|
||||
<attribute name='rowspan'>15</attribute>
|
||||
</xpath>
|
||||
<group colspan="8" position="replace">
|
||||
<group colspan="8" height="450" width="750">
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="plugin_file" filename="name"/>
|
||||
|
@ -55,12 +55,11 @@
|
|||
</record>
|
||||
|
||||
<record id="report_designer_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_report_designer_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="action_id" ref="action_report_designer_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<record id="action_report_designer_wizard" model="ir.actions.act_window">
|
||||
<field name="name">OpenERP Report Designer</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
<record id="base_setup_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_base_setup_installer"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
<record id="base_setup_company_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_base_setup_company"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="restart">onskip</field>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -25,24 +25,24 @@
|
|||
<xpath expr="//button[@string='Install Modules']" position="attributes">
|
||||
<attribute name="string">Configure</attribute>
|
||||
</xpath>
|
||||
<group colspan="8">
|
||||
<group colspan="4" col="4" groups="base.group_extended" name="other">
|
||||
<field name="crm_claim" />
|
||||
<field name="crm_helpdesk" />
|
||||
<field name="crm_fundraising" />
|
||||
<field name="wiki_sale_faq"/>
|
||||
<field name="sale_crm" invisible="1"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Synchronization" colspan="4" />
|
||||
<field name="crm_caldav" />
|
||||
<field name="fetchmail" />
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Plug-In" colspan="4" />
|
||||
<field name="thunderbird" />
|
||||
<field name="outlook" />
|
||||
</group>
|
||||
<group colspan="8">
|
||||
<group colspan="4" col="4" groups="base.group_extended" name="other">
|
||||
<field name="crm_claim" />
|
||||
<field name="crm_helpdesk" />
|
||||
<field name="crm_fundraising" />
|
||||
<field name="wiki_sale_faq"/>
|
||||
<field name="sale_crm" invisible="1"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Synchronization" colspan="4" />
|
||||
<field name="crm_caldav" />
|
||||
<field name="fetchmail" />
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Plug-In" colspan="4" />
|
||||
<field name="thunderbird" />
|
||||
<field name="outlook" />
|
||||
</group>
|
||||
</group>
|
||||
</data>
|
||||
</field>
|
||||
|
@ -59,9 +59,10 @@
|
|||
</record>
|
||||
|
||||
<record id="crm_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_crm_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field eval="[(6,0,[ref('base.group_extended')])]" name="groups_id"/>
|
||||
<field name="action_id" ref="action_crm_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="restart">always</field>
|
||||
<field eval="[(6,0,[ref('base.group_extended')])]" name="groups_id"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
register configuration wizard
|
||||
<record id="config_wizard_step_case_section_menu" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_view_document_ics_config_directories"/>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
<record id="hr_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_hr_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -41,8 +41,8 @@ class report_custom(report_rml):
|
|||
|
||||
start_date = datetime.strptime(datas['form']['init_date'], '%Y-%m-%d')
|
||||
end_date = datetime.strptime(datas['form']['end_date'], '%Y-%m-%d')
|
||||
first_monday = start_date - relativedelta(days=start_date.day_of_week)
|
||||
last_monday = end_date + relativedelta(days=7 - end_date.day_of_week)
|
||||
first_monday = start_date - relativedelta(days=start_date.date().weekday())
|
||||
last_monday = end_date + relativedelta(days=7 - end_date.date().weekday())
|
||||
|
||||
if last_monday < first_monday:
|
||||
first_monday, last_monday = last_monday, first_monday
|
||||
|
@ -82,7 +82,7 @@ class report_custom(report_rml):
|
|||
for att in attendances:
|
||||
dt = datetime.strptime(att['name'], '%Y-%m-%d %H:%M:%S')
|
||||
if att['action'] == 'sign_out':
|
||||
week_wh[ldt.day_of_week] = week_wh.get(ldt.day_of_week, 0) + (dt - ldt).hours
|
||||
week_wh[ldt.date().weekday()] = week_wh.get(ldt.date().weekday(), 0) + (dt - ldt).hours
|
||||
ldt = dt
|
||||
|
||||
# Week xml representation
|
||||
|
|
|
@ -178,6 +178,21 @@ class hr_timesheet_sheet(osv.osv):
|
|||
def copy(self, cr, uid, ids, *args, **argv):
|
||||
raise osv.except_osv(_('Error !'), _('You cannot duplicate a timesheet !'))
|
||||
|
||||
def create(self, cr, uid, vals, *args, **argv):
|
||||
if 'employee_id' in vals:
|
||||
if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id:
|
||||
raise osv.except_osv(_('Error !'), _('You cannot create a timesheet for an employee that does not have any user defined !'))
|
||||
return super(hr_timesheet_sheet, self).create(cr, uid, vals, *args, **argv)
|
||||
|
||||
def write(self, cr, uid, ids, vals, *args, **argv):
|
||||
if 'employee_id' in vals:
|
||||
new_user_id = self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id.id or False
|
||||
if not new_user_id:
|
||||
raise osv.except_osv(_('Error !'), _('You cannot create a timesheet for an employee that does not have any user defined !'))
|
||||
if not self._sheet_date(cr, uid, ids, forced_user_id=new_user_id):
|
||||
raise osv.except_osv(_('Error !'), _('You can not have 2 timesheets that overlaps !\nPlease use the menu \'My Current Timesheet\' to avoid this problem.'))
|
||||
return super(hr_timesheet_sheet, self).write(cr, uid, ids, vals, *args, **argv)
|
||||
|
||||
def button_confirm(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
@ -262,8 +277,8 @@ class hr_timesheet_sheet(osv.osv):
|
|||
_columns = {
|
||||
'name': fields.char('Description', size=64, select=1,
|
||||
states={'confirm':[('readonly', True)], 'done':[('readonly', True)]}),
|
||||
'user_id': fields.many2one('res.users', 'User', required=True, select=1,
|
||||
states={'confirm':[('readonly', True)], 'done':[('readonly', True)]}),
|
||||
'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
|
||||
'user_id': fields.related('employee_id', 'user_id', type="many2one", relation="res.users", store=True, string="User", required=False, readonly=True),#fields.many2one('res.users', 'User', required=True, select=1, states={'confirm':[('readonly', True)], 'done':[('readonly', True)]}),
|
||||
'date_from': fields.date('Date from', required=True, select=1, readonly=True, states={'new':[('readonly', False)]}),
|
||||
'date_to': fields.date('Date to', required=True, select=1, readonly=True, states={'new':[('readonly', False)]}),
|
||||
'date_current': fields.date('Current date', required=True),
|
||||
|
@ -320,24 +335,24 @@ class hr_timesheet_sheet(osv.osv):
|
|||
return time.strftime('%Y-%m-%d')
|
||||
|
||||
_defaults = {
|
||||
'user_id': lambda self,cr,uid,c: uid,
|
||||
'date_from' : _default_date_from,
|
||||
'date_current' : lambda *a: time.strftime('%Y-%m-%d'),
|
||||
'date_to' : _default_date_to,
|
||||
'state': 'new',
|
||||
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr_timesheet_sheet.sheet', context=c)
|
||||
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr_timesheet_sheet.sheet', context=c)
|
||||
}
|
||||
|
||||
def _sheet_date(self, cr, uid, ids):
|
||||
def _sheet_date(self, cr, uid, ids, forced_user_id=False):
|
||||
for sheet in self.browse(cr, uid, ids):
|
||||
cr.execute('SELECT id \
|
||||
new_user_id = forced_user_id or sheet.user_id and sheet.user_id.id
|
||||
if new_user_id:
|
||||
cr.execute('SELECT id \
|
||||
FROM hr_timesheet_sheet_sheet \
|
||||
WHERE (date_from < %s and %s < date_to) \
|
||||
AND user_id=%s \
|
||||
AND id <> %s', (sheet.date_to, sheet.date_from,
|
||||
sheet.user_id.id, sheet.id))
|
||||
if cr.fetchall():
|
||||
return False
|
||||
AND id <> %s',(sheet.date_to, sheet.date_from, new_user_id, sheet.id))
|
||||
if cr.fetchall():
|
||||
return False
|
||||
return True
|
||||
|
||||
def _date_current_check(self, cr, uid, ids):
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<record id="sheet0" model="hr_timesheet_sheet.sheet">
|
||||
<field name="name">Sheet 0</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field eval="time.strftime('%Y-%m-01', time.localtime(time.mktime(time.localtime()[0:2] + (0,)*7)-1))" name="date_from"/>
|
||||
<field eval="time.strftime('%Y-%m-15', time.localtime(time.mktime(time.localtime()[0:2] + (0,)*7)-1))" name="date_current"/>
|
||||
<field eval="time.strftime('%Y-%m-%d', time.localtime(time.mktime(time.localtime()[0:2] + (0,)*7)-1))" name="date_to"/>
|
||||
|
|
|
@ -1,25 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="hr_timesheet_sheet_tree" model="ir.ui.view">
|
||||
<field name="name">hr.timesheet.sheet.tree</field>
|
||||
<field name="model">hr_timesheet_sheet.sheet</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Timesheets"
|
||||
colors="blue:state == 'draft';gray:state == 'done'">
|
||||
<field name="user_id"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="total_attendance" groups="base.group_hr_attendance"/>
|
||||
<field name="total_timesheet"/>
|
||||
<field name="total_difference" groups="base.group_hr_attendance"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="hr_timesheet_sheet_graph" model="ir.ui.view">
|
||||
<field name="name">hr.timesheet.sheet.graph</field>
|
||||
<field name="model">hr_timesheet_sheet.sheet</field>
|
||||
|
@ -71,7 +52,7 @@
|
|||
<field name="company_id" select="1" groups="base.group_multi_company"/>
|
||||
<field name="department_id" groups="base.group_extended"/>
|
||||
<newline/>
|
||||
<field name="user_id"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
</group>
|
||||
|
@ -167,7 +148,7 @@
|
|||
<filter icon="terp-document-new" string="In Draft" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/>
|
||||
<filter icon="terp-camera_test" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="employee_id" select="1"/>
|
||||
<field name="date_from"/>
|
||||
<field name="department_id" widget="selection">
|
||||
<filter icon="terp-personal+"
|
||||
|
@ -177,7 +158,7 @@
|
|||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Users" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Employees" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -190,7 +171,7 @@
|
|||
<field name="res_model">hr_timesheet_sheet.sheet</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" eval="False"/>
|
||||
<field name="context">{'search_default_my_timesheet':1, 'search_default_user_id':uid }</field>
|
||||
<field name="context">{'search_default_my_timesheet':1, }</field>
|
||||
<field name="search_view_id" ref="view_hr_timesheet_sheet_filter"/>
|
||||
<field name="help">Employees can encode their time spent on the different projects. A project is an analytic account and the time spent on a project generate costs on the analytic account.</field>
|
||||
</record>
|
||||
|
@ -312,18 +293,19 @@
|
|||
src_model="hr_timesheet_sheet.sheet"/>
|
||||
|
||||
<record id="hr_timesheet_sheet_tree_simplified" model="ir.ui.view">
|
||||
<field name="name">hr.timesheet.sheet.tree.simplified</field>
|
||||
<field name="name">hr.timesheet.sheet.tree</field>
|
||||
<field name="model">hr_timesheet_sheet.sheet</field>
|
||||
<field name="type">tree</field>
|
||||
<field eval="20" name="priority"/>
|
||||
<field eval="10" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state in ('draft');black:state in ('confirm','new');gray:state in('done')" string="Timesheets">
|
||||
<field name="employee_id"/>
|
||||
<field name="date_from"/>
|
||||
<field name="user_id"/>
|
||||
<field name="department_id" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="total_attendance"/>
|
||||
<field name="date_to"/>
|
||||
<field name="department_id"/>
|
||||
<field name="total_attendance" groups="base.group_hr_attendance"/>
|
||||
<field name="total_timesheet"/>
|
||||
<field name="total_difference" groups="base.group_hr_attendance"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
|
|
@ -34,11 +34,11 @@
|
|||
<field name="year" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="month" invisible="1"/>
|
||||
<field name="total_attendance" sum="#Total Attendance"/>
|
||||
<field name="total_timesheet" sum="#Total Timesheet"/>
|
||||
<field name="total_diff" sum="#Total Diff"/>
|
||||
<field name="quantity" sum="#Quantity"/>
|
||||
<field name="cost" sum="#Cost"/>
|
||||
<field name="total_diff" sum="#Total Diff"/>
|
||||
<field name="total_timesheet" sum="#Total Timesheet"/>
|
||||
<field name="total_attendance" sum="#Total Attendance"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
name: Week-22(2010)
|
||||
state: new
|
||||
user_id: base.user_root
|
||||
employee_id: 'hr_employee_employee0'
|
||||
-
|
||||
Now , at the time of login, I create Attendances and perform "Sign In" action.
|
||||
-
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
<field name="action_id" ref="action_knowledge_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
<record id="marketing_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_marketing_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="restart">always</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
<record id="mrp_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_mrp_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="restart">always</field>
|
||||
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
|
||||
<record id="misc_tools_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_misc_tools_installer"/>
|
||||
<field name="restart">always</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
</data>
|
||||
|
|
|
@ -10,43 +10,12 @@
|
|||
Board for project managers
|
||||
-->
|
||||
<act_window
|
||||
domain="[('manager', '=', uid)]"
|
||||
id="act_my_project" name="My projects"
|
||||
res_model="project.project" view_mode="tree,form"
|
||||
view_type="form"/>
|
||||
domain="[('manager', '=', uid)]"
|
||||
id="act_my_project" name="My projects"
|
||||
res_model="project.project" view_mode="tree,form"
|
||||
view_type="form"/>
|
||||
|
||||
<act_window domain="[('user_id','=',uid),('state','<>','close')]" id="act_my_account" name="My accounts to invoice" res_model="account.analytic.account" view_id="view_account_analytic_simplified" view_mode="tree,form" view_type="form"/>
|
||||
|
||||
<record id="board_project_manager_form" model="ir.ui.view">
|
||||
<field name="name">board.project.manager.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Project manager board">
|
||||
<hpaned>
|
||||
<child1>
|
||||
<!-- <action colspan="4" height="220" name="%(act_my_project)d" string="My projects" width="510"/>-->
|
||||
|
||||
<action colspan="4" height="150" name="%(act_my_account)d" string="My accounts to invoice" width="510"/>
|
||||
</child1>
|
||||
<child2>
|
||||
<button colspan="4" icon="terp-partner" name="%(open_board_project)d" string="My tasks board" type="action"/>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="open_board_project_manager" model="ir.actions.act_window">
|
||||
<field name="name">Project Manager Dashboard</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="usage">menu</field>
|
||||
<field name="view_id" ref="board_project_manager_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="open_board_project_manager" icon="terp-graph" id="menu_board_project_manager" parent="project.next_id_86" sequence="1" groups="project.group_project_user"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -49,8 +49,9 @@
|
|||
</record>
|
||||
|
||||
<record id="project_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_project_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="action_id" ref="action_project_installer"/>
|
||||
<field name="restart">always</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
|
||||
<record id="report_designer_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_report_designer_installer"/>
|
||||
<field name="restart">always</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
</data>
|
||||
|
|
|
@ -26,8 +26,8 @@ class sale_installer(osv.osv_memory):
|
|||
_inherit = 'res.config.installer'
|
||||
|
||||
_columns = {
|
||||
'sale_analytic_plans': fields.boolean('Sales Analytic Distribution',
|
||||
help="Helps you to manage analytic distribution and sales orders."),
|
||||
'delivery': fields.boolean('Delivery Costs',
|
||||
help="Allows you to compute delivery costs on your quotations."),
|
||||
'sale_journal': fields.boolean('Sales and deliveries by journal',
|
||||
help="Allows you to categorise your "
|
||||
"sales and deliveries (picking lists) between different journals. "
|
||||
|
@ -40,8 +40,8 @@ class sale_installer(osv.osv_memory):
|
|||
"the difference between Unit Price and Cost Price."),
|
||||
'sale_order_dates': fields.boolean('Sales Order Dates',
|
||||
help="Adds commitment, requested and effective dates on Sales Orders."),
|
||||
}
|
||||
}
|
||||
|
||||
sale_installer()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<attribute name="string">Configure</attribute>
|
||||
</xpath>
|
||||
<group colspan="8">
|
||||
<field name="sale_analytic_plans"/>
|
||||
<field name="delivery"/>
|
||||
<field name="sale_journal"/>
|
||||
<field name="sale_layout"/>
|
||||
<field name="sale_margin"/>
|
||||
|
@ -47,6 +47,7 @@
|
|||
|
||||
<record id="sale_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_sale_installer"/>
|
||||
<field name="restart">always</field>
|
||||
<field name="sequence">3</field>
|
||||
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
|
||||
</record>
|
||||
|
|
|
@ -568,6 +568,7 @@ to your configuration: from the sales order, from the pickings, etc.
|
|||
<!-- register configuration wizard -->
|
||||
<record id="config_wizard_step_sale_picking_policy" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_config_picking_policy"/>
|
||||
<field name="restart">always</field>
|
||||
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_sale_order_line_make_invoice" model="ir.ui.view">
|
||||
<record id="view_sale_order_line_make_invoice" model="ir.ui.view">
|
||||
<field name="name">Sale OrderLine Make Invoice</field>
|
||||
<field name="model">sale.order.line.make.invoice</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create invoices">
|
||||
<separator colspan="4" string="Do you really want to create the invoice(s) ?" />
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="make_invoices" string="Create Invoices" type="object" icon="gtk-ok"/>
|
||||
</form>
|
||||
<separator colspan="4" string="Do you really want to create the invoice(s) ?" />
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="make_invoices" string="Create Invoices" type="object" icon="gtk-ok"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record id="action_view_sale_order_line_make_invoice" model="ir.actions.act_window">
|
||||
<record id="action_view_sale_order_line_make_invoice" model="ir.actions.act_window">
|
||||
<field name="name">Make Invoices</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sale.order.line.make.invoice</field>
|
||||
|
@ -34,4 +34,4 @@
|
|||
<field name="model">sale.order.line</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
|
|
|
@ -60,8 +60,9 @@
|
|||
</record>
|
||||
|
||||
<record id="thunderbird_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_thunderbird_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="action_id" ref="action_thunderbird_installer"/>
|
||||
<field name="restart">always</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue