예제 #1
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)
예제 #2
0
 def get(self):
     """Displays info about team and all members for current leader"""
     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":
             leader = db.Query(Leader).filter("user ="******"roles": roles,
                 "user_email": email,
                 "logout": users.create_logout_url("/login"),
                 "team_name": team.name,
                 "terry": territory,
                 "membs": membs,
                 "membs_count": membs.count(),
                 "keys": memb_keys,
             }
             template = JINJA_ENVIRONMENT.get_template("/templates/tmmosc/leader/Team.html")
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
예제 #3
0
 def get(self):
     """Displays form to change info about member of current leader"""
     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":
             memb_key = self.request.get("change")
             member = db.get(memb_key)
             [sex_m, sex_w] = check_sex(member)
             temp_values = {
                 "roles": roles,
                 "user_email": email,
                 "logout": users.create_logout_url("/login"),
                 "card_title": u"Изменение участника",
                 "memb_name": member.surname,
                 "birthdate": member.birthdate,
                 "qual": member.qualification,
                 "sex_m": sex_m,
                 "sex_w": sex_w,
                 "new_memb": False,
                 "memb_key": memb_key,
                 "change": memb_key,
             }
             template = JINJA_ENVIRONMENT.get_template("/templates/tmmosc/leader/Member.html")
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
예제 #4
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)
 def get(self):
     """Displays empty form for adding common info of that new competition"""
     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_org and self.session.get('role') == 'organizer':
             temp_values = {'roles': roles, 'user_email': email, 'logout': users.create_logout_url('/login')}
             template = JINJA_ENVIRONMENT.get_template('templates/tmmosc/organizer/NewCompetitionInfo.html')
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
예제 #6
0
 def post(self):
     """Deletes chosen member of current leader"""
     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":
             memb_key = self.request.POST.get("delete")
             db.delete(memb_key)
             time.sleep(0.1)
             self.redirect("/reg/leaderTeam")
         else:
             show_unauth_page(self)
예제 #7
0
 def get(self):
     """Displays list of team members to mark some on current competition"""
     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.GET["competition"]
             competition = Competition.get(comp_key)
             leader = db.Query(Leader).filter("user ="******"command =", team).order("surname")
             memb_team = team_q.run(batch_size=1000)
             entry_membs = []
             no_entry_membs = []
             days = []
             for memb in memb_team:
                 m = db.Query(CompMemb).filter("competition =", competition).filter("member =", memb)
                 membs = m.run()
                 if m.count():
                     entry_membs.append(memb)
                     m_d = []
                     for mem in membs:
                         m_d.append(mem.day_numb)
                     days.append(m_d)
                 else:
                     no_entry_membs.append(memb)
             temp_values = {
                 "roles": roles,
                 "user_email": email,
                 "logout": users.create_logout_url("/login"),
                 "team_name": team.name,
                 "membs_count": team_q.count(),
                 "entry_membs": entry_membs,
                 "no_entry_membs": no_entry_membs,
                 "comp_name": competition.name,
                 "days_count": range(1, int(competition.days_count) + 1),
                 "comp_key": comp_key,
                 "days": days,
             }
             template = JINJA_ENVIRONMENT.get_template("templates/tmmosc/leader/MembersToCompetition.html")
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
 def get(self):
     """Displays empty form for adding detailed info of that new competition"""
     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_org and self.session.get('role') == 'organizer':
             temp_values = {'roles': roles, 'user_email': email,
                            'distance_dict': json.dumps(json.loads(defaults.DISTANCE_CLASS))}
             temp_values.update(get_common_info(self))
             template = JINJA_ENVIRONMENT.get_template('templates/tmmosc/organizer/AddCompetition.html')
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
예제 #9
0
    def post(self):
        """Saves changes about member of current leader"""
        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":
                memb_key = self.request.POST.get("change")
                member = db.get(memb_key)

                save_member_from_post(self, member)
                time.sleep(0.1)
                self.redirect("/reg/leaderTeam")
            else:
                show_unauth_page(self)
예제 #10
0
 def post(self):
     """Saves info about new member of current leader"""
     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":
             member = save_member_from_post(self)
             member.pass_to_edit = salt_pass(self.request.POST.get("passToEdit"))
             member.command = db.Query(Leader).filter("user ="******"/reg/leaderTeam")
         else:
             show_unauth_page(self)
예제 #11
0
 def post(self):
     """Changes common info of team of current leader"""
     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":
             new_name = self.request.POST.get("nameTeam")
             new_terry = self.request.POST.get("terryTeam")
             lead = db.Query(Leader).filter("user ="******"/reg/leaderTeam")
         else:
             show_unauth_page(self)
예제 #12
0
 def get(self):
     """Diplays whole list of members"""
     user = users.get_current_user()
     if user:
         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_org and self.session.get('role') == 'organizer':
             members = db.Query(Member).order('nickname')
             keys = [memb.key() for memb in members]
             global tooltip_message
             global tooltip_show
             tooltip_message = ''
             tooltip_show = 'none'
             temp_values = {'roles': roles, 'user_email': email, 'logout': users.create_logout_url('/login'),
                            'disp_tool': tooltip_show, 'tool': tooltip_message, 'members': members, 'keys': keys}
             template = JINJA_ENVIRONMENT.get_template('templates/tmmosc/organizer/MemberList.html')
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
     else:
         show_unauth_page(self)
예제 #13
0
 def get(self):
     """Displays empty form to add info about new member of current leader"""
     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":
             pass_to_edit = generate_pass()
             temp_values = {
                 "roles": roles,
                 "user_email": email,
                 "logout": users.create_logout_url("/login"),
                 "edit_pass": pass_to_edit,
                 "card_title": u"Новый участник команды",
                 "new_memb": True,
             }
             template = JINJA_ENVIRONMENT.get_template("/templates/tmmosc/leader/Member.html")
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
    def post(self):
        """Saves filled form described new competition"""
        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_org and self.session.get('role') == 'organizer':
                [competition, comp_values, errors] = post_competition(self)

                if errors:
                    return self.response.write(errors)
                info_values = post_info(self, competition)
                diz_values = post_diz(self, competition)
                temp_values = {'roles': roles, 'user_email': email, 'logout': users.create_logout_url('/login')}
                temp_values.update(comp_values)
                temp_values.update(info_values)
                temp_values.update(diz_values)
                time.sleep(0.1)
                self.redirect('/')
            else:
                show_unauth_page(self)
예제 #15
0
 def post(self):
     """Finds organizers by keyword"""
     user = users.get_current_user()
     if user:
         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_org and self.session.get('role') == 'organizer':
             search_fio = self.request.POST['findOrganizer']
             orgs = db.Query(Organizer).filter('nickname >=', search_fio).filter('nickname <=', search_fio+'1')\
                         .order('nickname')
             keys = []
             for org in orgs:
                 keys.append(org.key())
             global tooltip_message
             global tooltip_show
             temp_values = {'roles': roles, 'user_email': email, 'logout': users.create_logout_url('/login'),
                            'disp_tool': tooltip_show, 'tool': tooltip_message, 'organizers': orgs, 'keys': keys}
             template = JINJA_ENVIRONMENT.get_template('templates/tmmosc/organizer/OrganizerList.html')
             self.response.write(template.render(temp_values))
         else:
             show_unauth_page(self)
     else:
         show_unauth_page(self)
예제 #16
0
 def get(self):
     """Displays whole list of organizers"""
     user = users.get_current_user()
     if user:
         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_org and self.session.get('role') == 'organizer':
             orgs = db.Query(Organizer).order('nickname')
             keys = []
             for org in orgs:
                 keys.append(org.key())
             global tooltip_message
             global tooltip_show
             temp_values = {'roles': roles, 'user_email': email, 'logout': users.create_logout_url('/login'),
                        'disp_tool': tooltip_show, 'tool': tooltip_message, 'organizers': orgs, 'keys': keys}
             template = JINJA_ENVIRONMENT.get_template('templates/tmmosc/organizer/OrganizerList.html')
         else:
             temp_values = {'img_src': '../static/img/er401.png', 'er_name': '401',
                            'login_redir': users.create_login_url('/reg/newCompetition')}
             template = JINJA_ENVIRONMENT.get_template('templates/tmmosc/ErrorPage.html')
         self.response.write(template.render(temp_values))
     else:
         show_unauth_page(self)