Esempio n. 1
0
 def setUp(self):
     """
     Add some transactions to a VirtualAcct.
     """
     user = User(username = '******', email = '*****@*****.**')
     user.save()
     profile = UserProfile(user = user)
     profile.save()
     budget = Budget(owner = profile, period_budget_amount = '100.00')
     year = Year()
     year.save()
     budget.period_length = year
     budget.save()
     
     category = Category(owner = profile, name = 'test', budget = budget)
     category.save()
     
     self.acct = RealAcct(owner = profile)
     self.acct.save()
     self.vacct = VirtualAcct(owner = profile, real_acct = self.acct, parent_budget = budget)
     self.vacct.save()
     
     self.txn_1 = RealTxn(value = '110.00', category = category, real_acct = self.acct)
     self.txn_1.save()
     self.vtxn_1 = VirtualTxn(value = '90.00', real_txn = self.txn_1, virtual_acct = self.vacct)
     self.vtxn_1.save()
     self.vtxn_2 = VirtualTxn(value = '20.00', real_txn = self.txn_1, virtual_acct = self.vacct)
     self.vtxn_2.save()
Esempio n. 2
0
def answer_save(request, qid):
    if request.method == 'POST':
        answer = Answer()
        user = User()
        user.id = request.user.id
        answer.user = user
        ques = Question()
        ques.id = qid
        answer.question = ques

        # 去除xss,留下受信任的标签和属性
        content = request.POST['content'].strip()
        if len(strip_tags(content)) < 10:
            errmsg = {'content': {'msg': '回答内容至少需要10个字符!', 'value': content}}
            return question(request, qid, errmsg)
        from cicada.tool.XssClean import XssClean
        ser_tag = settings.VALID_TAGS
        xss = XssClean(valid_tags=ser_tag)
        xss.feed(content)
        answer.content = xss.clean_data
        # 为@到的用户替换超链接和写入到redis中,提醒谁@到了
        answer.content, at_uid = at_user(answer.content.encode('utf-8'))
        xss.close()
        answer.save()
        for uid in at_uid :
            at_user_key = 'cacida.answer-at-user-%d' % uid
            redis_cache.lpush(at_user_key,answer.id)
        if answer.id:
            return HttpResponseRedirect('/question/' + qid)
    return HttpResponseRedirect('/question/' + qid)
Esempio n. 3
0
def answer_save(request, qid):
    if request.method == 'POST':
        answer = Answer()
        user = User()
        user.id = request.user.id
        answer.user = user
        ques = Question()
        ques.id = qid
        answer.question = ques

        # 去除xss,留下受信任的标签和属性
        content = request.POST['content'].strip()
        if len(strip_tags(content)) < 10:
            errmsg = {'content': {'msg': '回答内容至少需要10个字符!', 'value': content}}
            return question(request, qid, errmsg)
        from cicada.tool.XssClean import XssClean
        ser_tag = settings.VALID_TAGS
        xss = XssClean(valid_tags=ser_tag)
        xss.feed(content)
        answer.content = xss.clean_data
        # 为@到的用户替换超链接和写入到redis中,提醒谁@到了
        answer.content, at_uid = at_user(answer.content.encode('utf-8'))
        xss.close()
        answer.save()
        for uid in at_uid:
            at_user_key = 'cacida.answer-at-user-%d' % uid
            redis_cache.lpush(at_user_key, answer.id)
        if answer.id:
            return HttpResponseRedirect('/question/' + qid)
    return HttpResponseRedirect('/question/' + qid)
Esempio n. 4
0
 def test_periodlength_inheritance(self):
     """
     See if having PeriodLength as not abstract will call PeriodLength
     methods or subclass methods
     """
     user = User(username = '******', email = '*****@*****.**')
     user.save()
     profile = UserProfile(user = user)
     profile.save()
     budget = Budget(owner = profile, period_budget_amount = '100.00')
     year = Year()
     year.save()
     budget.period_length = year
     budget.save()
     length = budget.period_length
     assert(length.__unicode__() == 'Year PeriodLength')