def dissertations(request): person = mdl.person.find_by_user(request.user) if mdl.student.find_by_person(person) and not \ mdl.tutor.find_by_person(person) and not \ adviser.find_by_person(person): return redirect('home') elif adviser.find_by_person(person): adv = adviser.search_by_person(person) count_advisers_pro_request = dissertation_role.count_by_adviser(adv, 'PROMOTEUR', 'DIR_SUBMIT') return layout.render(request, "dissertations.html", {'section': 'dissertations', 'person': person, 'adviser': adv, 'count_advisers_pro_request': count_advisers_pro_request}) else: if request.method == "POST": form = AdviserForm(request.POST) if form.is_valid(): adv = Adviser(person=person, available_by_email=False, available_by_phone=False, available_at_office=False) adv.save() adv = adviser.search_by_person(person) count_advisers_pro_request = dissertation_role.count_by_adviser(adv, 'PROMOTEUR', 'DIR_SUBMIT') return layout.render(request, "dissertations.html", {'section': 'dissertations', 'person': person, 'adviser': adv, 'count_advisers_pro_request': count_advisers_pro_request}) else: form = AdviserForm() return layout.render(request, 'dissertations_welcome.html', {'form': form})
def dissertations(request): person = get_object_or_404(Person.objects.select_related('adviser'), pk=request.user.person.pk) if mdl.student.find_by_person(person) and not \ tutor.find_by_person(person) and not \ adviser.find_by_person(person): return redirect('home') elif adviser.find_by_person(person): count_advisers_pro_request = dissertation_role.count_by_adviser( person.adviser, dissertation_role_status.PROMOTEUR, dissertation_status.DIR_SUBMIT) return render( request, "dissertations.html", { 'section': 'dissertations', 'person': person, 'adviser': person.adviser, 'count_advisers_pro_request': count_advisers_pro_request }) else: form = AdviserForm(request.POST or None) if form.is_valid(): adv = Adviser(person=person, available_by_email=False, available_by_phone=False, available_at_office=False) adv.save() count_advisers_pro_request = dissertation_role.count_by_adviser( adv, dissertation_role_status.PROMOTEUR, dissertation_status.DIR_SUBMIT) return render( request, "dissertations.html", { 'section': 'dissertations', 'person': person, 'adviser': adv, 'count_advisers_pro_request': count_advisers_pro_request }) else: return render(request, 'dissertations_welcome.html', {'form': form})
def test_manager_informations_detail_stats_without_teacher(self): advisers_pro = dissertation_role.search_by_adviser_and_role_stats( self.teacher, dissertation_role_status.PROMOTEUR ) advisers_copro = dissertation_role.search_by_adviser_and_role_stats( self.teacher, dissertation_role_status.CO_PROMOTEUR ) advisers_reader = dissertation_role.search_by_adviser_and_role_stats( self.teacher, dissertation_role_status.READER ) response = self.client.post( reverse('manager_informations_detail_stats', args=[self.manager.person.user.pk]), { 'adviser': self.teacher, 'count_advisers_copro': dissertation_role.count_by_adviser_and_role_stats( self.teacher, dissertation_role_status.CO_PROMOTEUR ), 'count_advisers_pro': dissertation_role.count_by_adviser_and_role_stats( self.teacher, dissertation_role_status.PROMOTEUR ), 'count_advisers_reader': dissertation_role.count_by_adviser_and_role_stats( self.teacher, dissertation_role_status.READER ), 'count_advisers_pro_request': dissertation_role.count_by_adviser( self.teacher, dissertation_role_status.PROMOTEUR, 'DIR_SUBMIT' ), 'tab_offer_count_pro': dissertation_role.get_tab_count_role_by_education_group( advisers_pro ), 'tab_offer_count_read': dissertation_role.get_tab_count_role_by_education_group( advisers_reader ), 'tab_offer_count_copro': dissertation_role.get_tab_count_role_by_education_group( advisers_copro ) } ) self.assertEqual(response.status_code, HttpResponseRedirect.status_code)
def informations_detail_stats(request): person = mdl.person.find_by_user(request.user) adv = adviser.search_by_person(person) advisers_pro = dissertation_role.search_by_adviser_and_role_stats( adv, 'PROMOTEUR') count_advisers_pro = dissertation_role.count_by_adviser_and_role_stats( adv, 'PROMOTEUR') count_advisers_pro_request = dissertation_role.count_by_adviser( adv, 'PROMOTEUR', 'DIR_SUBMIT') tab_offer_count_pro = dissertation_role.get_tab_count_role_by_offer( advisers_pro) advisers_copro = dissertation_role.search_by_adviser_and_role_stats( adv, 'CO_PROMOTEUR') count_advisers_copro = dissertation_role.count_by_adviser_and_role_stats( adv, 'CO_PROMOTEUR') tab_offer_count_copro = dissertation_role.get_tab_count_role_by_offer( advisers_copro) advisers_reader = dissertation_role.search_by_adviser_and_role_stats( adv, 'READER') count_advisers_reader = dissertation_role.count_by_adviser_and_role_stats( adv, 'READER') tab_offer_count_read = dissertation_role.get_tab_count_role_by_offer( advisers_reader) return layout.render( request, 'informations_detail_stats.html', { 'adviser': adv, 'count_advisers_copro': count_advisers_copro, 'count_advisers_pro': count_advisers_pro, 'count_advisers_reader': count_advisers_reader, 'count_advisers_pro_request': count_advisers_pro_request, 'tab_offer_count_pro': tab_offer_count_pro, 'tab_offer_count_read': tab_offer_count_read, 'tab_offer_count_copro': tab_offer_count_copro })
def manager_informations_detail_stats(request, pk): adv = adviser.get_by_id(pk) if adv is None: return redirect('manager_informations') advisers_pro = dissertation_role.search_by_adviser_and_role_stats( adv, 'PROMOTEUR') count_advisers_pro = dissertation_role.count_by_adviser_and_role_stats( adv, 'PROMOTEUR') count_advisers_pro_request = dissertation_role.count_by_adviser( adv, 'PROMOTEUR', 'DIR_SUBMIT') tab_offer_count_pro = dissertation_role.get_tab_count_role_by_offer( advisers_pro) advisers_copro = dissertation_role.search_by_adviser_and_role_stats( adv, 'CO_PROMOTEUR') count_advisers_copro = dissertation_role.count_by_adviser_and_role_stats( adv, 'CO_PROMOTEUR') tab_offer_count_copro = dissertation_role.get_tab_count_role_by_offer( advisers_copro) advisers_reader = dissertation_role.search_by_adviser_and_role_stats( adv, 'READER') count_advisers_reader = dissertation_role.count_by_adviser_and_role_stats( adv, 'READER') tab_offer_count_read = dissertation_role.get_tab_count_role_by_offer( advisers_reader) return layout.render( request, 'manager_informations_detail_stats.html', { 'adviser': adv, 'count_advisers_copro': count_advisers_copro, 'count_advisers_pro': count_advisers_pro, 'count_advisers_reader': count_advisers_reader, 'count_advisers_pro_request': count_advisers_pro_request, 'tab_offer_count_pro': tab_offer_count_pro, 'tab_offer_count_read': tab_offer_count_read, 'tab_offer_count_copro': tab_offer_count_copro })