Пример #1
0
 def getTransactionHistory(self, transactionCount, userMembership, lang):
     transactions_query_from = Transaction.gql("WHERE group = :1 AND fromMember = :2 ORDER BY date DESC", userMembership.group, userMembership)
     transactions_from = transactions_query_from.fetch(transactionCount)
     
     transactions_query_to = Transaction.gql("WHERE group = :1 AND toMember = :2 ORDER BY date DESC", userMembership.group, userMembership)
     transactions_to = transactions_query_to.fetch(transactionCount)
     
     transactions = transactions_from + transactions_to
     transactions.sort(cmp = compareTransactionsByDateDesc)
     
     transactions = transactions[0:transactionCount]
     
     messages = []
     for tr in transactions:
         if not tr.fromUser or not tr.toUser or not tr.creator:
             continue
         
         message = descriptionOfTransaction(tr, userMembership.user, lang)
         message = '%s %s' % (niceDate(tr.date, lang), message)
         messages.append({
             'message': message, 
             'benefical': transactionIsBenefical(tr, userMembership.user),
             'isRejectable': tr.isRejectable,
             'rejectUrl': '/reject?key=' + str(tr.key()) + '&h=' + tr.hash +'&cancel=1&trcount=' + str(transactionCount)
             })
          
     return messages
Пример #2
0
	def get(self):
		page = self.request.get('p');
		if page is None or page == '':
			page = 1
		else:
			page = int(page)
			
		offset = (page - 1) * 20
		
		if page != 1:
			self.response.out.write("<a href=\"?p=%s\">Previous</a> | " % (page - 1))
			
		self.response.out.write(" &nbsp; %s &nbsp; " % page)
			
		self.response.out.write(" | <a href=\"?p=%s\">Next</a>" % (page + 1))
		
		self.response.out.write("<br/><br/>")
		
		self.response.out.write("<ul>")
		for tr in Transaction.gql("ORDER BY date DESC LIMIT %s, %s" % (offset, 20)):
			try:
				self.response.out.write("<li>In %s: %s <b>%s</b> %s ($%s due to \"%s\", %s)</li>" % (
											tr.group.name, 
											tr.fromMember.userNick, 
											tr.type, 
											tr.toMember.userNick, 
											tr.amount, 
											tr.reason, 
											tr.date))
			except:
				self.response.out.write("<li style=\"color:blue\">Group must have been deleted...</li>")
		self.response.out.write("</ul>")
Пример #3
0
    def get(self):
        groupKey = self.request.get("key")
        group = Group.get(groupKey)

        self.response.out.write("<h1>Transactions in %s</h1>" % group.name)

        balances = {}

        transactions = Transaction.gql("WHERE group = :1 ORDER BY date ASC", group)

        self.response.out.write("<ul>")
        for tr in transactions:
            try:
                self.response.out.write("<li>")
                self.response.out.write(
                    "Creator: %s, From: <b>%s</b>, To: <b>%s</b>, Type: <b>%s</b>, Amount: %s, Reason: %s, Date: %s"
                    % (
                        tr.creatorMember.user.nickname(),
                        tr.fromMember.user.nickname(),
                        tr.toMember.user.nickname(),
                        tr.type,
                        tr.amount,
                        tr.reason,
                        tr.date,
                    )
                )

                if tr.type == "debt":
                    fromBalance = -tr.amount
                    toBalance = tr.amount
                else:
                    fromBalance = tr.amount
                    toBalance = -tr.amount

                if not tr.fromMember.user in balances:
                    balances[tr.fromMember.user] = fromBalance
                else:
                    balances[tr.fromMember.user] += fromBalance

                if not tr.toMember.user in balances:
                    balances[tr.toMember.user] = toBalance
                else:
                    balances[tr.toMember.user] += toBalance

                totalBalance = 0.0

                self.response.out.write("<ul>")
                for member, balance in balances.items():
                    totalBalance += balance
                    self.response.out.write("<li>%s: %s</li>" % (member, balance))
                if abs(totalBalance - 0) > 1e7:
                    self.response.out.write('<li style="color:red">Total Balance: %s</li>' % totalBalance)
                self.response.out.write("</ul>")

                self.response.out.write("</li>")
            except:
                foo = True
        self.response.out.write("</ul>")