コード例 #1
0
    def get(self):
        """(for developing mode) Adds initial data to database"""
        user = users.get_current_user()
        com1 = Command(name=u'Фортуна', territory=u'Ангарск')
        com2 = Command(name=u'Фортуна', territory=u'Москва')
        com1.put()
        com2.put()
        paswd = '123'
        paswd = salt_pass(paswd)
        org1 = Organizer(user=users.User('*****@*****.**'), nickname=u'Олишевская Анна', contact='*****@*****.**')
        org2 = Organizer(user=users.User('*****@*****.**'), nickname=u'Тест Тестович', contact='*****@*****.**')
        org3 = Organizer(user=users.User('*****@*****.**'), nickname=u'Плотникова Дарья', contact='*****@*****.**')
        org4 = Organizer(user=users.User('*****@*****.**'), nickname=u'Потапейко Дмитрий', contact='*****@*****.**')
        lead1 = Leader(user=users.User('*****@*****.**'), nickname=u'Олишевская Анна', contact='*****@*****.**', command=com2)

        memb1 = Member(pass_to_edit=paswd, sex=u'Женский', nickname='*****@*****.**', surname=u'Плотникова Дарья',
                       command=com1, birthdate=1994, qualification='I')
        memb2 = Member(pass_to_edit=paswd, sex=u'Мужской', nickname='[email protected]', surname=u'Хайруллин Марат', command=com1,
                       birthdate=1994, qualification='I')
        memb3 = Member(pass_to_edit=paswd, sex=u'Мужской', nickname='*****@*****.**', surname=u'Потапейко Дмитрий',
                       command=com2, birthdate=1995, qualification='I')
        memb1.put()
        memb2.put()
        memb3.put()
        org1.put()
        org2.put()
        org3.put()
        org4.put()
        lead1.put()
コード例 #2
0
 def post(self):
     """Saves members that will take a part in competition to database"""
     user = users.get_current_user()
     if not user:
         show_unauth_page(self)
     else:
         email = user.email()
         [is_org, is_lead, is_memb] = OtherHandlers.find_user(email)
         if is_lead and self.session.get("role") == "leader":
             days_checked_count = int(self.request.POST.get("daysCheckedCount"))
             comp_key = self.request.POST.get("competition")
             competition = Competition.get(comp_key)
             dist_query = db.Query(Distance).filter("competition =", competition)
             distances = dist_query.run(batch_size=1000)
             distinfos = []  # all groups of all days
             for dist in distances:
                 distinfo = (
                     db.Query(DistInfo).filter("distance =", dist).run()
                 )  # all groups for that day (=distance)
                 distinfos.append(distinfo)
             for i_day in range(days_checked_count):  # runs through all days one by one
                 memb_count_i_day = int(self.request.POST.get("membsInDay%s" % str(i_day)))
                 for j_memb in range(memb_count_i_day):  # runs through all member of i- day
                     memb_group = self.request.POST.get("checkMembGroup%s" % str(i_day) + "_%s" % str(j_memb))
                     keys = memb_group.split("_")
                     member = Member.get(keys[0])
                     group_code = keys[1]
                     CompMemb(competition=competition, member=member, group=group_code, day_numb=i_day + 1).put()
             time.sleep(0.1)
             self.redirect("/competition?dbKey=%s" % comp_key)
         else:
             show_unauth_page(self)
コード例 #3
0
 def get(self):
     """Displays info about certain member or empty form for adding new once"""
     login = users.create_login_url(dest_url="/postSignIn")
     comp_key = self.request.GET["competition"]
     memb_key = self.request.GET["member"]
     member = Member.get(memb_key)
     name = member.surname.split(" ")[1]
     surname = member.surname.split(" ")[0]
     try:
         self.request.GET["tooltip"]
         tooltip = u"Неверный пароль потверждения. Попробуйте еще раз"
     except:
         tooltip = ""
     temp_values = {
         "login": login,
         "logout": users.create_logout_url("/login"),
         "surname": surname,
         "name": name,
         "age": member.birthdate,
         "qual": member.qualification,
         "team": member.command,
         "competition": comp_key,
         "memb_key": memb_key,
         "tooltip": tooltip,
     }
     template = JINJA_ENVIRONMENT.get_template("/templates/tmmosc/member/MemberView.html")
     self.response.write(template.render(temp_values))
コード例 #4
0
 def get(self):
     """Displays empty form to enter password of current user"""
     login = users.create_login_url(dest_url="/postSignIn")
     comp_key = self.request.GET["competition"]
     memb_key = self.request.GET["member"]
     comp = Competition.get(comp_key)
     member = Member.get(memb_key)
     try:
         self.request.GET["tooltip"]
         tooltip = u"Неверный пароль подтверждения. Попробуйте еще раз"
     except:
         tooltip = ""
     temp_values = {
         "login": login,
         "logout": users.create_logout_url("/login"),
         "name": comp.name,
         "competition": comp_key,
         "memb_key": memb_key,
         "surname": member.surname,
         "team": member.command.name,
         "card_title": u"Удаление участника из заявки",
         "tooltip": tooltip,
     }
     template = JINJA_ENVIRONMENT.get_template("/templates/tmmosc/member/EnterPass.html")
     self.response.write(template.render(temp_values))
コード例 #5
0
 def post(self):
     """Displays group of current competition to check member"""
     login = users.create_login_url(dest_url="/postSignIn")
     memb_key = self.request.POST.get("member")
     memb = Member.get(memb_key)
     comp_key = self.request.POST.get("competition")
     comp = Competition.get(comp_key)
     distances = db.Query(Distance).filter("competition =", comp).order("day_numb")
     groups_by_days = []
     for dist in distances:
         groups_by_days.append(dist.distinfo_set.run(batch_size=100))
     temp_values = {
         "login": login,
         "logout": users.create_logout_url("/login"),
         "name": comp.name,
         "surname": memb.surname,
         "team": memb.command.name,
         "memb_key": memb_key,
         "competition": comp_key,
         "card_title": u"Заявка участника",
         "dists": distances,
         "groups_by_day": groups_by_days,
     }
     template = JINJA_ENVIRONMENT.get_template("/templates/tmmosc/member/ToDaysGroups.html")
     self.response.write(template.render(temp_values))
コード例 #6
0
 def post(self):
     """Displays members added to current competition to check their groups"""
     user = users.get_current_user()
     if not user:
         show_unauth_page(self)
     else:
         email = user.email()
         [is_org, is_lead, is_memb] = OtherHandlers.find_user(email)
         roles = OtherHandlers.create_roles_head(self, is_org, is_lead, is_memb)
         if is_lead and self.session.get("role") == "leader":
             comp_key = self.request.POST.get("competition")
             competition = Competition.get(comp_key)
             days_count = competition.days_count
             membs_by_day = []
             show_tables = False
             for i in range(days_count):  # add members (keys) for each day
                 membs_key_day = self.request.POST.getall("checkMemb" + str(i))
                 membs_i_day = []
                 for memb_key in membs_key_day:
                     member = Member.get(memb_key)
                     membs_i_day.append(member)
                     if show_tables == False:
                         show_tables = True
                 membs_by_day.append(membs_i_day)
             show_arrow_back = True
             for membs_i_day in membs_by_day:
                 if len(membs_i_day) > 0:
                     show_arrow_back = False
                     break
             dist_query = db.Query(Distance).filter("competition =", competition)
             distances = dist_query.run()
             type_lent = []
             groups_on_day = []
             for dist in distances:
                 type_lent.append(dist.type + " " + dist.lent)
                 dist_infos = dist.distinfo_set.run(batch_size=1000)
                 groups_i_day = []
                 for info in dist_infos:
                     groups_i_day.append(info.group_name)
                 groups_on_day.append(groups_i_day)
             temp_values = {
                 "roles": roles,
                 "user_email": email,
                 "logout": users.create_logout_url("/login"),
                 "membs_by_day": membs_by_day,
                 "dists": type_lent,
                 "groups": groups_on_day,
                 "comp_key": comp_key,
                 "show_tables": show_tables,
                 "show_arrow": show_arrow_back,
             }
             template = JINJA_ENVIRONMENT.get_template("templates/tmmosc/leader/MembersToDays.html")
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
コード例 #7
0
 def post(self):
     """Deletes certain user from current competition"""
     memb_key = self.request.POST.get("member")
     member = Member.get(memb_key)
     paswd = self.request.POST.get("changePass")
     comp_key = self.request.POST.get("competition")
     comp = Competition.get(comp_key)
     if salt_pass(paswd) == member.pass_to_edit:
         comp_membs = CompMemb.all().filter("member =", member).filter("competition =", comp)
         db.delete(comp_membs)
         time.sleep(0.1)
         self.redirect("/entryOneMemb?competition=" + comp_key)
     else:
         self.redirect("/deleteFromComp?competition=" + comp_key + "&member=" + memb_key + "&tooltip=True")
コード例 #8
0
 def post(self):
     """Saves current member's changes"""
     comp_key = self.request.POST.get("competition")
     passwd = self.request.POST.get("changePass")
     memb_key = self.request.POST.get("member")
     member = Member.get(memb_key)
     if salt_pass(passwd) == member.pass_to_edit:
         surname = self.request.POST.get("surnameMemb") + " " + self.request.POST.get("nameMemb")
         age = int(self.request.POST.get("ageMemb"))
         qual = self.request.POST.get("qualMemb")
         member.surname = surname
         member.birthdate = age
         member.qualification = qual
         member.put()
         time.sleep(0.1)
         self.redirect("/entryOneMemb?competition=%s" % comp_key)
     else:
         self.redirect("/memberInfo?competition=%s" % comp_key + "&member=%s" % memb_key + "&tooltip=True")
コード例 #9
0
 def post(self):
     """Saves current member to database so that he will take a part in competition"""
     memb_key = self.request.POST.get("member")
     memb = Member.get(memb_key)
     paswd = self.request.POST.get("changePass")
     comp_key = self.request.POST.get("competition")
     comp = Competition.get(comp_key)
     if salt_pass(paswd) == memb.pass_to_edit:
         for i in range(comp.days_count):
             infos_count = int(self.request.POST.get("infosCount%s" % str(i)))
             for group_num in range(infos_count):
                 checked_group = self.request.POST.get("checkMembGroup%s" % (str(i) + str(group_num)))
                 if checked_group:
                     entry = CompMemb(competition=comp, member=memb, group=checked_group, day_numb=i + 1)
                     entry.put()
                     time.sleep(0.1)
                     self.redirect("/entryOneMemb?competition=" + comp_key)
     else:
         login = users.create_login_url(dest_url="/postSignIn")
         distances = db.Query(Distance).filter("competition =", comp).order("day_numb")
         groups_by_days = []
         for dist in distances:
             groups_by_days.append(dist.distinfo_set.run(batch_size=100))
         temp_values = {
             "login": login,
             "logout": users.create_logout_url("/login"),
             "name": comp.name,
             "surname": memb.surname,
             "team": memb.command.name,
             "memb_key": memb_key,
             "competition": comp_key,
             "card_title": u"Заявка участника",
             "dists": distances,
             "groups_by_day": groups_by_days,
             "tooltip": u"Неверный пароль подтверждения. Попробуйте еще раз",
         }
         template = JINJA_ENVIRONMENT.get_template("/templates/tmmosc/member/ToDaysGroups.html")
         self.response.write(template.render(temp_values))
コード例 #10
0
 def post(self):
     """Changes existing member"""
     new_fio = self.request.POST['omFio']
     new_birthdate = self.request.POST['omGr']
     new_qual = self.request.POST['omRazr']
     new_command = self.request.POST['omComand']
     new_terry = self.request.POST['omTerritory']
     memb_key = self.request.POST['omKey']
     member = Member.get(memb_key)
     team = member.command
     team.name = new_command
     team.territory = new_terry
     team.put()
     member.nickname = new_fio
     member.birthdate = int(new_birthdate)
     member.qualification = new_qual
     member.command = team
     member.put()
     global tooltip_message
     global tooltip_show
     tooltip_message = u'Участник %s изменен' % new_fio
     tooltip_show = 'block'
     time.sleep(0.1)
     self.redirect('/reg/memberList')