def get(self): if self.user: if self.user.has_transfers() or self.request.get("dashboard") == "true": self.render("transfer_dashboard", user_transfer=self.user.transfers(), show_graph=True, total_transfers=Application.app().total_transfers or 0, ) else: self.render("transfer_step1", email=self.user.email, location=self.user.location()) else: self.render("authorize", redirect_uri="%s/auth" % settings.APP_ENGINE_PATH, app_id=settings.FACEBOOK_APP_ID)
def process_transfer_form(self, user): current_month_transfer = float(self.request.get("current_month")) if self.request.get("last_month"): last_month_transfer = float(self.request.get("last_month")) else: last_month_transfer = None if self.request.get("start_date"): from datetime import datetime start_date = datetime.strptime(self.request.get("start_date"), "%Y-%m-%d").date() else: start_date = None user_id = user.user_id parent = user.key() try: if start_date: # if we're here, it means that this is the first time the user has submitted the form # at this point, user has no transfers yet transfer = Transfer( user_id=user_id, key_name=user_id, parent=parent, start_date=start_date, monthly_transfers=[current_month_transfer] ) else: # user is updating or entering new transfer transfer = user.transfers() if last_month_transfer: # update last month's transfer transfer.monthly_transfers[-1] = last_month_transfer transfer.monthly_transfers.append(current_month_transfer) transfer.put() self.render( 'transfer_dashboard', message="Your transfer has been saved.", success=True, total_transfers=Application.app().total_transfers or 0, show_graph=True ) except: self.render( "transfer_dashboard", message="Data not saved. Please ensure that you've entered the correct information.", success=False )
import datetime from models.transfer import Transfer from models.application import Application active_transfers = 0.0 total_transfers = 0.0 today = datetime.date.today() for transfer in Transfer.all(): if transfer.start_date <= today: total_transfers += sum(transfer.monthly_transfers) app = Application.app() app.total_transfers = total_transfers app.put()