def income(self, coin, role="topic-create", topic_id=None, reply_id=None, spender_id=None, incomer_id=None): self.balance += coin bill = m.Bill(coin=coin, balance=self.balance, role=role, category=1, topic_id=topic_id, reply_id=reply_id, spender_id=spender_id, incomer_id=incomer_id) bill.save()
def income(self, coin, role="signup", topic_id=None, reply_id=None): self.balance += coin bill = m.Bill(user_id=self.id, coin=coin, balance=self.balance, role=role, category=1, topic_id=topic_id, reply_id=reply_id) if role in ["signup", "invite", "signup-invited", "active-gift"]: bank = m.Bank.get_one() bank.spend(coin=coin, role=role, incomer_id=self.id) bill.save() return
def spend(self, coin, role="topic-create", topic_id=None, reply_id=None): self.balance -= coin bill = m.Bill(user_id=self.id, coin=coin, balance=self.balance, role=role, category=0, topic_id=topic_id, reply_id=reply_id) if role in ["topic-create", "reply-create", "topic-edit"]: bank = m.Bank.get_one() bank.income(coin=coin, role=role, topic_id=topic_id, reply_id=reply_id, spender_id=self.id) bill.save() return
def load_data(): print 'Loading...' bills = load_page() print 'Here we go' session = models.DBSession() for b in bills: message = '' bill = (session.query( models.Bill).filter(models.Bill.name == b['name']).first()) if not bill: bill = models.Bill(name=b['name'], long_name=b['long_name']) session.add(bill) session.flush() b['bill_id'] = bill.id if b.has_key('date_presented'): b['date_presented'] = datetime.datetime.strptime( b['date_presented'], '%d/%m/%Y').date() rev = (session.query(models.BillRevision).filter( models.BillRevision.bill_id == bill.id).filter( models.BillRevision.year == int(b['year'])).first()) now = datetime.datetime.now() b['update_date'] = now if not rev: b['create_date'] = now rev = models.BillRevision(**b) session.add(rev) session.flush() message = 'Bill Started: %s, year %s %s' else: if rev.status != b['status']: for k, v in b.iteritems(): if hasattr(rev, k): setattr(rev, k, v) session.flush() message = 'Bills Updated: %s, year %s %s' if message: url = settings.URL + 'detail/%d/' % (rev.id) indexer.index_single(rev.id) print message % (bill.long_name, rev.year, url) session.commit()
def save(self, category='new'): now = int(time.time()) self.created_at = now self.active = now if category == 'new': coin = config.user_init_coin role = 'signup' elif category == 'invited': coin = config.user_init_coin + config.invite_coin role = 'signup-invited' self.balance = coin m.Bill(user_id=self.id, coin=coin, balance=self.balance, role=role).save() bank = m.Bank.get_one() bank.spend(coin=coin, role=role, incomer_id=self.id) return super(User, self).save()
def spend(self, coin, role="signup", spender_id=None, incomer_id=None): self.balance -= coin bill = m.Bill(coin=coin, balance=self.balance, role=role, category=0, spender_id=spender_id, incomer_id=incomer_id) bill.save()
def write_bill(self, name, long_name): bill = models.Bill(name=name, long_name=long_name) self.session.add(bill) self.session.flush() return bill