Example #1
0
    def get_context_data(self, **kwargs):
        context_data = super(TutorListView, self).get_context_data(**kwargs)
        group = self.kwargs.get("group")
        if group is None:
            tutors = Tutor.members(self.request.year)
            best = TutorGroup.objects.get(handle="best", year=self.request.year)
            leader = best.leader
        else:
            tg = get_object_or_404(TutorGroup, handle=group, year=self.request.year)
            tutors = Tutor.group_members(tg)
            leader = tg.leader

        leader_pk = leader.pk if leader else 0

        def make_tutor_dict(t):
            return {
                "pk": t.pk,
                "studentnumber": t.profile.studentnumber,
                "picture": t.profile.picture.url if t.profile.picture else "",
                "full_name": t.profile.get_full_name(),
                "street": t.profile.street,
                "city": t.profile.city,
                "phone": t.profile.phone,
                "email": t.profile.email,
                "study": t.profile.study,
            }

        tutors = [make_tutor_dict(t) for t in tutors]
        if group == "tutorsmiley" and self.request.year in [2015]:
            tutors.append(
                {
                    "pk": ":)",
                    "studentnumber": "88888888",
                    "picture": "/upload/tutorpics/smiley.png",
                    "full_name": "Smiley",
                    "street": "Skovbrynet 5",
                    "city": "Smilets By",
                    "phone": "88888888",
                    "email": "SMILEY@SMILEY.☺",
                    "study": "Smil",
                }
            )
        tutors.sort(key=lambda t: (t["pk"] != leader_pk, t["full_name"]))

        groups = TutorGroup.visible_groups.all()

        context_data["group"] = group
        context_data["tutor_list"] = tutors
        context_data["groups"] = groups
        context_data["tutor_count"] = len(tutors)
        context_data["leader_pk"] = leader_pk
        if leader_pk:
            try:
                context_data["leader"] = next(t for t in tutors if t["pk"] == leader_pk)
            except StopIteration:
                # leader is not in tutors
                context_data["leader"] = make_tutor_dict(Tutor.objects.get(pk=leader_pk))
        return context_data
Example #2
0
    def get_context_data(self, **kwargs):
        context_data = super(TutorListView, self).get_context_data(**kwargs)
        group = self.kwargs.get('group')
        if group is None:
            tutors = Tutor.members(self.request.year)
            best = TutorGroup.objects.get(handle='best',
                                          year=self.request.year)
            leader = best.leader
        else:
            tg = get_object_or_404(TutorGroup,
                                   handle=group,
                                   year=self.request.year)
            tutors = Tutor.group_members(tg)
            leader = tg.leader

        leader_pk = leader.pk if leader else 0

        def make_tutor_dict(t):
            return {
                'pk': t.pk,
                'studentnumber': t.profile.studentnumber,
                'picture': t.profile.picture,
                'full_name': t.profile.get_full_name(),
                'street': t.profile.street,
                'city': t.profile.city,
                'phone': t.profile.phone,
                'email': t.profile.email,
                'study': t.profile.study,
                'nickname': t.profile.nickname,
            }

        tutors = [make_tutor_dict(t) for t in tutors]
        if group == 'tutorsmiley' and self.request.year in [2015]:
            tutors.append({
                'pk': ':)',
                'studentnumber': '88888888',
                'picture': None,
                'full_name': 'Smiley',
                'street': 'Skovbrynet 5',
                'city': 'Smilets By',
                'phone': '88888888',
                'email': 'SMILEY@SMILEY.☺',
                'study': 'Smil',
            })
        tutors.sort(key=lambda t: (t['pk'] != leader_pk, t['full_name']))

        groups = TutorGroup.visible_groups.all()

        context_data['group'] = group
        context_data['tutor_list'] = tutors
        context_data['groups'] = groups
        context_data['tutor_count'] = len(tutors)
        context_data['leader_pk'] = leader_pk
        if leader_pk:
            try:
                context_data['leader'] = next(t for t in tutors
                                              if t['pk'] == leader_pk)
            except StopIteration:
                # leader is not in tutors
                context_data['leader'] = make_tutor_dict(
                    Tutor.objects.get(pk=leader_pk))
        return context_data
Example #3
0
    def get_context_data(self, **kwargs):
        context_data = super(TutorListView, self).get_context_data(**kwargs)
        group = self.kwargs.get('group')
        if group is None:
            tutors = Tutor.members(self.request.year)
            best = TutorGroup.objects.get(
                handle='best', year=self.request.year)
            leader = best.leader
        else:
            tg = get_object_or_404(
                TutorGroup, handle=group, year=self.request.year)
            tutors = Tutor.group_members(tg)
            leader = tg.leader

        leader_pk = leader.pk if leader else 0

        def make_tutor_dict(t):
            return {
                'pk': t.pk,
                'studentnumber': t.profile.studentnumber,
                'picture': t.profile.picture,
                'full_name': t.profile.get_full_name(),
                'street': t.profile.street,
                'city': t.profile.city,
                'phone': t.profile.phone,
                'email': t.profile.email,
                'study': t.profile.study,
                'nickname': t.profile.nickname,
            }

        tutors = [make_tutor_dict(t) for t in tutors]
        if group == 'tutorsmiley' and self.request.year in [2015]:
            tutors.append({
                'pk': ':)',
                'studentnumber': '88888888',
                'picture': None,
                'full_name': 'Smiley',
                'street': 'Skovbrynet 5',
                'city': 'Smilets By',
                'phone': '88888888',
                'email': 'SMILEY@SMILEY.☺',
                'study': 'Smil',
            })
        tutors.sort(key=lambda t: (t['pk'] != leader_pk, t['full_name']))

        groups = TutorGroup.visible_groups.all()

        context_data['group'] = group
        context_data['tutor_list'] = tutors
        context_data['groups'] = groups
        context_data['tutor_count'] = len(tutors)
        context_data['leader_pk'] = leader_pk
        if leader_pk:
            try:
                context_data['leader'] = next(
                    t for t in tutors
                    if t['pk'] == leader_pk
                )
            except StopIteration:
                # leader is not in tutors
                context_data['leader'] = make_tutor_dict(
                    Tutor.objects.get(pk=leader_pk))
        return context_data