class MailMessageSubtype(models.Model): _inherit = 'mail.message.subtype' _columns = { 'internal': fields.boolean('Internal', help="don't publish these messages") } _defaults = {'internal': False}
class product_template(models.Model): _inherit = 'product.template' _columns = { 'special_offer_ok': old_fields.boolean('Special offer only', help='Hide product from /shop directory.'), } _defaults = { 'special_offer_ok': False, }
class GoogleGcmConfigSettings(models.TransientModel): _name = 'google_gcm.config.settings' """ Inherit the base settings to add a counter of failed email + configure the alias domain. """ _inherit = 'base.config.settings' module_google_gcm = fields.boolean('Allow notification by Google Cloud Message', help="""This install the module google_gcm.""") # @api.multi # def open_google_gcm(self): # server = self.env['google_gcm.server'].browse() # return { # 'type': 'ir.actions.act_window', # 'name': 'Google Cloud Message', # 'view_type': 'form', # 'view_mode': 'form', # 'res_model': 'google_gcm.server', # 'res_id': server.id, # 'target': 'current', # }
class LaundryOrder(model.Model): _inherit = 'sale.order' def estimate_end_date(self): return fields.date.to_string(datetime.now() + timedelta(2)) is_laundry = fields.boolean(string='Laundry') state = fields.Selection([ ('draft', 'Draft'), ('sent', 'Quotation Sent'), ('sale', 'Sales Order'), ('open', 'Open'), ('done', 'Done'), ('cancel', 'Cancelled'), ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', track_sequence=3, default='draft') lo_date = fields.Date( string='Order Date', readonly=True, index=True, states={ 'draft': [('readonly', False)], 'sent': [('readonly', False)] }, copy=False, default=fields.Date.today) #set to required true if is laundry true lo_commitment_date = fields.Date( 'Commitment Date', states={ 'draft': [('readonly', False)], 'sent': [('readonly', False)] }, copy=False, readonly=True, default=estimate_end_date) #set to required true if is laundry true laundry_person = fields.Many2one('res.users', string='Laundry Person', index=True, track_visibility='onchange', track_sequence=2, default=lambda self: self.env.user, readonly=True, states={ 'draft': [('readonly', False)], 'sent': [('readonly', False)] }) note = fields.Text(string='Remarks') @api.multi def action_confirm(self): super(LaundryOrder, self).action_confirm() if self.is_laundry: self.write({'state': 'open'}) #insert into Laundry WO lo_wo_obj = self.env['laundry.work.order'].create( {'sale_obj': self.id}) #insert into Laundry WO Line for each in self: #Check WO/ order Line (check git) if not each.order_line: raise ValidationError( _('''Order haven't lines. Please create order line(s)''' )) #insert into Laundry WO Line wo_lines = [] for obj in each.order_line: qty_item = obj.product_uom_qty if obj.work_type == 'wash': #loop so line insert to woline based on qty qty_insertw = 1 while qty_insertw <= qty_item: lo_woline_obj = self.env[ 'laundry.work.line'].create({ 'product_id': obj.product_id.id, 'uom_id': obj.product_id.uom_id.id, 'laundry_obj': lo_wo_obj.id }) wo_lines.append(lo_woline_obj.id) qty_insertw += 1 elif obj.work_type == 'extra_work': qty_inserte = 1 while qty_inserte <= qty_item: self.env['laundry.work.line'].create({ 'product_id': obj.product_id.id, 'uom_id': obj.product_id.uom_id.id, 'laundry_works': True, 'laundry_obj': lo_wo_obj.id }) wo_lines.append(lo_woline_obj.id) qty_inserte += 1 #lo_wo_obj.write({'outstanding_extra': obj.product_uom_qty }) lo_wo_obj.write({'order_lines': wo_lines}) return True