Example #1
0
  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))
Example #2
0
 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
Example #3
0
 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))