def get(self): user = users.get_current_user() if user: lang = getLanguage(self, user) userMemberships = membershipsOfUser(user) userMemberships.sort(cmp = compareMembershipsByGroupNick) hasUserMemberships = len(userMemberships) > 0 if hasUserMemberships: group = userMemberships[0].group else: group = 0 debts = self.getDebts(user, userMemberships, lang) message = self.request.get('msg') hasMessage = len(message) > 0 model = { 'username': user.nickname(), 'signout_url': users.create_logout_url("/"), 'debts': debts, 'hasUserMemberships': hasUserMemberships, 'userMemberships': userMemberships, 'group': group, 'hasMessage': hasMessage, 'message': message, # i18n 'DontBelong': _("You don't belong to any group. You can create your own and invite your friends.", lang), 'Name': _('Name', lang), 'YouOweNobody': _('You owe nobody, and nobody owes you. Hurray!', lang), 'GoToGroup': _('Go to group', lang), 'SelectGroup': _('select group', lang), 'CreateGroup': _('Create Group', lang), } addMasterKeys(model, lang) path = os.path.join(os.path.dirname(__file__), 'dashboard.html') self.response.out.write(template.render(path, model)) else: lang = getDefaultLanguage(self) model = { 'loginurl': users.create_login_url("/"), # i18n 'introduction': _('introduction', lang), } addMasterKeys(model, lang) path = os.path.join(os.path.dirname(__file__), 'introduction.html') self.response.out.write(template.render(path, model))
def get(self): key = self.request.get('key') hash = self.request.get('h') cancel = self.request.get('cancel') trCount = self.request.get('trcount') user = users.get_current_user() lang = getLanguage(self, user) # Check that all is ok tr = isValidTransaction(key, hash, user) if not tr: self.redirect('/') return template_values = { 'key' : key, 'h' : hash, 'group' : tr.group, 'showCancel' : cancel, 'trCount' : trCount, 'username' : user.nickname(), 'transactionDescription': descriptionOfTransaction(tr, user, lang), 'transactionIsBenefical': transactionIsBenefical(tr, user), 'alreadyRejected': tr.isRejected, # i18n 'YouAreRejecting': _('You are rejecting a transaction that says that', lang), 'ButThatTransaccionWasAlreadyRejected': _('But that transaccion was already rejected.', lang), 'Why': _('Please enter the reason why you are rejecting it', lang), 'RejectTransaction': _('Reject transaction', lang), 'Cancel': _('Cancel', lang) } addMasterKeys(template_values, lang) path = os.path.join(os.path.dirname(__file__), 'reject.html') self.response.out.write(template.render(path, template_values)) return
def get(self): user = users.get_current_user() lang = getLanguage(self, user) groupKey = self.request.get("group") try: group = Group.get(groupKey) email = self.request.get("user") invitation = GroupInvitation(group, email, UrlBuilder(self.request)) # Verificar que la invitacion es valida (coinciden los hashes) isValidInvitation = invitation.makeHash() == self.request.get("hash") # Verificar que el usuario logueado coincide con el mail de la invitacion isValidUser = user.email().lower() == email.lower() except: group = None isValidInvitation = False isValidUser = False if not isValidInvitation or not isValidUser: template_values = { 'isValidInvitation': isValidInvitation, 'isValidUser': isValidUser, 'group': group, 'username': user.nickname(), 'signout_url': users.create_logout_url("/"), # i18n 'ThisInvitationIsNotForYou': _('This invitation is not for you.', lang), 'TheInvitationIsInvalid': _('The invitation is invalid.', lang) } addMasterKeys(template_values, lang) path = os.path.join(os.path.dirname(__file__), 'acceptInvitationError.html') self.response.out.write(template.render(path, template_values)) return # Verificar que el usuario no sea miembro del grupo isMember = Membership.gql("WHERE user = :1 AND group = :2", user, group).count() > 0 # If he's already a member, don't bother showing her that. # Just redirect to the group page with an appropriate message. if not isMember: msg = _('You are now a member of %s group', lang) % group.name # Join the user into the group. If later she finds out she has two # groups with the same name, she'll already know she can change the name # because she already belonged to another group... so she must know the site Membership( user = user, group = group, balance = 0.0, alias = group.name ).put() else: msg = _('You are already a member of this group', lang) self.redirect('/group?group=%s&msg=%s' % (group.key(), msg))