diff --git a/models/membership.py b/models/membership.py index 9320add..7c6e7a6 100644 --- a/models/membership.py +++ b/models/membership.py @@ -15,7 +15,12 @@ class kalachakra_membership(models.Model): track_visibility='onchange', ondelete='restrict' ) - product_id=fields.Many2one('product.product',required=True,string='membership product',domain="[('membership_product','=',True)]") + def _default_product_id(self): + membership_product=self.env['product.product'].sudo().search([('membership_product','=',True)],limit=1) + if not membership_product: raise UserError(_('No membership product, please add one')) + return membership_product.id + + product_id=fields.Many2one('product.product',required=True,string='membership product',default=_default_product_id,domain="[('membership_product','=',True)]") start_date=fields.Date('start date',required=True,default=lambda self: fields.Date.today()) invoice_id=fields.Many2one('account.move','invoice') payment_state=fields.Selection(string='payment_state',selection=[('paid', 'paid'), ('not paid', 'not paid')],compute='_compute_payment_state') @@ -33,10 +38,14 @@ class kalachakra_membership(models.Model): + def _default_end_date(self): + end_date=datetime.now()+relativedelta(years=1) + return end_date - end_date=fields.Date('end date') + end_date=fields.Date('end date',default=_default_end_date) - + + state=fields.Selection(string='state',selection=[('draft', 'draft'), ('done', 'done')],default='draft') currency_id = fields.Many2one( "res.currency", @@ -135,21 +144,32 @@ class kalachakra_membership(models.Model): member_status='member' else: member_status='not member' - - partner=self.env['res.partner'].search([('id','=',int(self.partner_id))]) - if partner.super_member==False: - partner.member_status=member_status + #partner=self.env['res.partner'].search([('id','=',int(self.partner_id))]) + + if self.partner_id.super_member==False: + self.partner_id.member_status=member_status + + return True + def write(self,vals): res=super(kalachakra_membership, self).write(vals) self.update_membership() - + return True + @api.model def create(self,vals): res=super(kalachakra_membership, self).create(vals) res.update_membership() + return res - - - + def update_amount(self): + members=self.env['kalachakra.membership'].search([]) + for m in members: + m.amount=45 + + def unlink(self): + if self.partner_id.super_member==False: + self.partner_id.member_status='not member' + return super(kalachakra_membership, self).unlink()