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)
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))
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))
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))
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)
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")
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")
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))
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')