Forward-port of latest saas-3, up to revision 9455 (rev-id mat@openerp.com-20140514080416-m4t23y0rxx2ot7y6)
This commit is contained in:
commit
583fe74ba2
|
@ -220,7 +220,7 @@ class account_analytic_account(osv.osv):
|
|||
res['value']['description'] = template.description
|
||||
return res
|
||||
|
||||
def on_change_partner_id(self, cr, uid, ids,partner_id, name, context={}):
|
||||
def on_change_partner_id(self, cr, uid, ids,partner_id, name, context=None):
|
||||
res={}
|
||||
if partner_id:
|
||||
partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
<field name="computation_mode">count</field>
|
||||
<field name="display_mode">boolean</field>
|
||||
<field name="model_id" eval="ref('base.model_res_company')" />
|
||||
<field name="domain">[('user_ids', 'in', [user.id]), ('name', '=', 'Your Company')]</field>
|
||||
<field name="domain">[('user_ids', 'in', [user.id]), ('name', '=', 'YourCompany')]</field>
|
||||
<field name="condition">lower</field>
|
||||
<field name="action_id" eval="ref('base.action_res_company_form')" />
|
||||
<field name="res_id_field">user.company_id.id</field>
|
||||
|
|
|
@ -446,6 +446,12 @@ class gamification_challenge(osv.Model):
|
|||
if end_date:
|
||||
values['end_date'] = end_date
|
||||
|
||||
# the goal is initialised over the limit to make sure we will compute it at least once
|
||||
if line.condition == 'higher':
|
||||
values['current'] = line.target_goal - 1
|
||||
else:
|
||||
values['current'] = line.target_goal + 1
|
||||
|
||||
if challenge.remind_update_delay:
|
||||
values['remind_update_delay'] = challenge.remind_update_delay
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
</record>
|
||||
|
||||
<record id="goal_global_multicompany" model="ir.rule">
|
||||
<field name="name">User can only see his/her goals or goal from the same challenge in board visibility</field>
|
||||
<field name="name">Multicompany rule on challenges</field>
|
||||
<field name="model_id" ref="model_gamification_goal"/>
|
||||
<field name="domain_force">[('user_id.company_id', 'child_of', [user.company_id.id])]</field>
|
||||
<field name="global" eval="True"/>
|
||||
|
|
|
@ -90,6 +90,11 @@ class hr_holidays_status(osv.osv):
|
|||
}
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
|
||||
if not context.get('employee_id',False):
|
||||
# leave counts is based on employee_id, would be inaccurate if not based on correct employee
|
||||
return super(hr_holidays_status, self).name_get(cr, uid, ids, context=context)
|
||||
|
||||
res = []
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
name = record.name
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('type', '=', 'remove'),('state','!=','draft')]}" string="Mode" groups="base.group_hr_user"/>
|
||||
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('type', '=', 'remove'),('state','!=','draft')]}" string="Mode" groups="base.group_hr_user" context="{'employee_id':employee_id}" />
|
||||
<field name="employee_id" attrs="{'required':[('holiday_type','=','employee')],'invisible':[('holiday_type','=','category')]}" on_change="onchange_employee(employee_id)" groups="base.group_hr_user"/>
|
||||
<field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly': [('type', '=', 'remove'),('state','!=','draft'), ('state','!=','confirm')], 'invisible':[('holiday_type','=','employee')]}"/>
|
||||
<field name="department_id" attrs="{'readonly':['|', ('type','=','add'),('holiday_type','=','category')],'invisible':[('holiday_type','=','category')]}" groups="base.group_hr_user"/>
|
||||
|
|
|
@ -6,5 +6,6 @@
|
|||
device_list = [
|
||||
{ 'vendor' : 0x04b8, 'product' : 0x0e03, 'name' : 'Epson TM-T20' },
|
||||
{ 'vendor' : 0x04b8, 'product' : 0x0202, 'name' : 'Epson TM-T70' },
|
||||
{ 'vendor' : 0x04b8, 'product' : 0x0e15, 'name' : 'Epson TM-T20II' },
|
||||
]
|
||||
|
||||
|
|
|
@ -833,14 +833,10 @@ class product_product(osv.osv):
|
|||
return res
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
context = context or {}
|
||||
default = dict(default or {})
|
||||
if context is None:
|
||||
context={}
|
||||
|
||||
# Craft our own `<name> (copy)` in en_US (self.copy_translation()
|
||||
# will do the other languages).
|
||||
context_wo_lang = dict(context or {})
|
||||
context_wo_lang.pop('lang', None)
|
||||
product = self.browse(cr, uid, id, context_wo_lang)
|
||||
product = self.browse(cr, uid, id, context)
|
||||
if context.get('variant'):
|
||||
# if we copy a variant or create one, we keep the same template
|
||||
default['product_tmpl_id'] = product.product_tmpl_id.id
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
<search string="Sales Analysis">
|
||||
<field name="date"/>
|
||||
<field name="date_confirm"/>
|
||||
<filter icon="terp-document-new" name="Quotations" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-check" name="Sales" string="Sales" domain="[('state','not in',('draft','done','cancel'))]"/>
|
||||
<filter icon="terp-document-new" name="Quotations" domain="[('state','in',('draft','sent'))]"/>
|
||||
<filter icon="terp-check" name="Sales" string="Sales" domain="[('state','not in',('draft','sent','cancel'))]"/>
|
||||
<separator/>
|
||||
<filter icon="terp-personal" string="My Sales" help="My Sales" domain="[('user_id','=',uid)]"/>
|
||||
<field name="partner_id"/>
|
||||
|
|
|
@ -622,13 +622,13 @@ class sale_order_line(osv.osv):
|
|||
res_packing = self.product_packaging_change(cr, uid, ids, pricelist, product, qty, uom, partner_id, packaging, context=context)
|
||||
res['value'].update(res_packing.get('value', {}))
|
||||
warning_msgs = res_packing.get('warning') and res_packing['warning']['message'] or ''
|
||||
compare_qty = float_compare(product_obj.virtual_available * uom2.factor, qty * product_obj.uom_id.factor, precision_rounding=product_obj.uom_id.rounding)
|
||||
compare_qty = float_compare(product_obj.virtual_available, qty, precision_rounding=uom2.rounding)
|
||||
if (product_obj.type=='product') and int(compare_qty) == -1 \
|
||||
and (product_obj.procure_method=='make_to_stock'):
|
||||
warn_msg = _('You plan to sell %.2f %s but you only have %.2f %s available !\nThe real stock is %.2f %s. (without reservations)') % \
|
||||
(qty, uom2 and uom2.name or product_obj.uom_id.name,
|
||||
max(0,product_obj.virtual_available), product_obj.uom_id.name,
|
||||
max(0,product_obj.qty_available), product_obj.uom_id.name)
|
||||
(qty, uom2.name,
|
||||
max(0,product_obj.virtual_available), uom2.name,
|
||||
max(0,product_obj.qty_available), uom2.name)
|
||||
warning_msgs += _("Not enough stock ! : ") + warn_msg + "\n\n"
|
||||
|
||||
#update of warning messages
|
||||
|
|
Loading…
Reference in New Issue