def get_queryset(self): form_class = MandatesArchivesForm form = form_class(self.request.GET) current_reviewer = reviewer.find_by_person(self.request.user.person) if len( assistant_mandate.find_for_supervisor_for_academic_year( self.request.user.person, academic_year.current_academic_year())) > 0: self.is_supervisor = True mandates_id = mandate_entity.find_by_entity( current_reviewer.entity).values_list('assistant_mandate_id', flat=True) if form.is_valid(): self.request.session['selected_academic_year'] = form.cleaned_data[ 'academic_year'].id selected_academic_year = academic_year.AcademicYear.objects.get( id=self.request.session.get('selected_academic_year')) elif self.request.session.get('selected_academic_year'): selected_academic_year = academic_year.AcademicYear.objects.get( id=self.request.session.get('selected_academic_year')) else: selected_academic_year = academic_year.current_academic_year() self.request.session[ 'selected_academic_year'] = selected_academic_year.id if self.kwargs.get("filter", None): selected_academic_year = academic_year.current_academic_year() self.request.session[ 'selected_academic_year'] = selected_academic_year.id queryset = assistant_mandate.find_by_academic_year(selected_academic_year).filter(id__in=mandates_id).\ filter(state=current_reviewer.role.replace('_ASSISTANT', '')) else: queryset = assistant_mandate.find_by_academic_year( selected_academic_year).filter(id__in=mandates_id) return queryset
def get_queryset(self): form_class = MandatesArchivesForm form = form_class(self.request.GET) current_reviewer = reviewer.find_by_person(self.request.user.person) if len(assistant_mandate.find_for_supervisor_for_academic_year(self.request.user.person, academic_year.current_academic_year())) > 0: self.is_supervisor = True mandates_id = mandate_entity.find_by_entity(current_reviewer.entity).values_list( 'assistant_mandate_id', flat=True) if form.is_valid(): self.request.session['selected_academic_year'] = form.cleaned_data[ 'academic_year'].id selected_academic_year = academic_year.AcademicYear.objects.get( id=self.request.session.get('selected_academic_year')) elif self.request.session.get('selected_academic_year'): selected_academic_year = academic_year.AcademicYear.objects.get( id=self.request.session.get('selected_academic_year')) else: selected_academic_year = academic_year.current_academic_year() self.request.session[ 'selected_academic_year'] = selected_academic_year.id if self.kwargs.get("filter", None): selected_academic_year = academic_year.current_academic_year() self.request.session[ 'selected_academic_year'] = selected_academic_year.id queryset = assistant_mandate.find_by_academic_year(selected_academic_year).filter(id__in=mandates_id).\ filter(state=current_reviewer.role.replace('_ASSISTANT', '').replace('_DAF', '')) else: queryset = assistant_mandate.find_by_academic_year(selected_academic_year).filter(id__in=mandates_id) return queryset
def generate_xls(): workbook = Workbook(encoding='utf-8') worksheet = workbook.active worksheet.title = "mandates" worksheet.append([ _(entity_type.SECTOR), _(entity_type.FACULTY), _(entity_type.LOGISTICS_ENTITY), _(entity_type.INSTITUTE), _("matricule"), _("name"), _("firstname"), _("email"), _("age"), _("status"), _("renewal_type"), _("assistant_type"), _("fulltime_equivalent"), _("contract_duration_fte"), _("contract_duration"), _("end_date"), _("comment"), _("absences"), _("sector_vice_rector_review"), _("justification"), _("comment"), _("confidential"), ]) mandates = assistant_mandate.find_by_academic_year( academic_year.current_academic_year()) for mandate in mandates: line = construct_line(mandate) worksheet.append(line) return save_virtual_workbook(workbook)
def generate_xls(): workbook = Workbook(encoding='utf-8') worksheet = workbook.active worksheet.title = "mandates" worksheet.append([_(entity_type.SECTOR), _(entity_type.FACULTY), _(entity_type.LOGISTICS_ENTITY), _(entity_type.INSTITUTE), _("matricule"), _("name"), _("firstname"), _("email"), "FGS", _("age"), _("status"), _("renewal_type"), _("assistant_type"), _("fulltime_equivalent"), _("contract_duration_fte"), _("contract_duration"), _("entry_date_contract"), _("end_date"), _("comment"), _("absences"), _("sector_vice_rector_review"), _("justification"), _("comment"), _("confidential"), ]) mandates = assistant_mandate.find_by_academic_year(academic_year.current_academic_year()) for mandate in mandates: line = construct_line(mandate) worksheet.append(line) return save_virtual_workbook(workbook)
def export_mandates(mandates=None): if not isinstance(mandates, QuerySet): mandates = assistant_mandate.find_by_academic_year( academic_year.current_academic_year()) filename = ('%s_%s.pdf' % (_('assistants_mandates'), time.strftime("%Y%m%d_%H%M"))) response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="%s"' % filename buffer = BytesIO() doc = SimpleDocTemplate(buffer, pagesize=PAGE_SIZE, rightMargin=MARGIN_SIZE, leftMargin=MARGIN_SIZE, topMargin=70, bottomMargin=25) styles = getSampleStyleSheet() styles.add( ParagraphStyle( name='Tiny', fontSize=6, font='Helvetica', leading=8, leftIndent=0, rightIndent=0, firstLineIndent=0, alignment=TA_LEFT, spaceBefore=0, spaceAfter=0, splitLongWords=1, )) styles.add( ParagraphStyle( name='StandardWithBorder', font='Helvetica', leading=18, leftIndent=10, rightIndent=10, firstLineIndent=0, alignment=TA_JUSTIFY, spaceBefore=25, spaceAfter=5, splitLongWords=1, borderColor='#000000', borderWidth=1, borderPadding=10, )) content = [] for mandate in mandates: add_mandate_content(content, mandate, styles) doc.build(content, onFirstPage=add_header_footer, onLaterPages=add_header_footer) pdf = buffer.getvalue() buffer.close() response.write(pdf) return response
def get_queryset(self): form_class = MandatesArchivesForm form = form_class(self.request.GET) if len( assistant_mandate.find_for_supervisor_for_academic_year( self.request.user.person, academic_year.starting_academic_year())) > 0: self.is_supervisor = True mandates_id = mandate_entity.MandateEntity.objects.filter( entity__reviewer__person=self.request.user.person).values_list( 'assistant_mandate_id', flat=True) if form.is_valid(): selected_academic_year = form.cleaned_data['academic_year'] elif self.request.session.get('selected_academic_year'): selected_academic_year = academic_year.AcademicYear.objects.get( id=self.request.session.get('selected_academic_year')) else: selected_academic_year = academic_year.starting_academic_year() self.request.session[ 'selected_academic_year'] = selected_academic_year.id if self.kwargs.get("filter", None): selected_academic_year = academic_year.starting_academic_year() self.request.session[ 'selected_academic_year'] = selected_academic_year.id reviewers = reviewer.Reviewer.objects.filter( person=self.request.user.person) roles = [ rev.role.replace('_ASSISTANT', '').replace('_DAF', '') for rev in reviewers ] queryset = assistant_mandate.find_by_academic_year( selected_academic_year).filter(id__in=mandates_id, state__in=roles) else: queryset = assistant_mandate.find_by_academic_year( selected_academic_year).filter(id__in=mandates_id) return queryset
def test_context_data(self): self.client.force_login(self.phd_supervisor.user) response = self.client.get('/assistants/reviewer/') self.assertEqual(response.context['reviewer'], self.reviewer) self.assertTrue(response.context['can_delegate']) mandates_id = find_by_entity(self.reviewer.entity).values_list( 'assistant_mandate_id', flat=True) self.assertQuerysetEqual( response.context['object_list'], find_by_academic_year( self.current_academic_year).filter(id__in=mandates_id), transform=lambda x: x)
def send_message_to_assistants(request): mandates_for_current_academic_year = assistant_mandate.find_by_academic_year( academic_year.current_academic_year()) for mandate in mandates_for_current_academic_year: if mandate.renewal_type == assistant_mandate_renewal.NORMAL: html_template_ref = 'assistant_assistants_startup_normal_renewal_html' txt_template_ref = 'assistant_assistants_startup_normal_renewal_txt' else: html_template_ref = 'assistant_assistants_startup_except_renewal_html' txt_template_ref = 'assistant_assistants_startup_except_renewal_txt' send_message(mandate.assistant.person, html_template_ref, txt_template_ref) save_message_history(request, message_type.TO_ALL_ASSISTANTS) return redirect('messages_history')
def test_context_data(self): self.reviewer = ReviewerFactory(role=reviewer_role.RESEARCH, entity=self.entity_version.entity, person=self.phd_supervisor) self.client.force_login(self.phd_supervisor.user) response = self.client.get('/assistants/reviewer/') self.assertEqual(response.context['reviewer'], find_by_person(self.phd_supervisor)) self.assertTrue(response.context['can_delegate']) mandates_id = find_by_entity(self.reviewer.entity).values_list( 'assistant_mandate_id', flat=True) self.assertQuerysetEqual(response.context['object_list'], find_by_academic_year(self.current_academic_year).filter(id__in=mandates_id), transform=lambda x: x )
def send_message_to_assistants(request): mandates_for_current_academic_year = assistant_mandate.find_by_academic_year( academic_year.current_academic_year()) for mandate in mandates_for_current_academic_year: if mandate.renewal_type == assistant_mandate_renewal.NORMAL or \ mandate.renewal_type == assistant_mandate_renewal.SPECIAL: html_template_ref = 'assistant_assistants_startup_normal_renewal_html' txt_template_ref = 'assistant_assistants_startup_normal_renewal_txt' else: html_template_ref = 'assistant_assistants_startup_except_renewal_html' txt_template_ref = 'assistant_assistants_startup_except_renewal_txt' send_message(mandate.assistant.person, html_template_ref, txt_template_ref) save_message_history(request, message_type.TO_ALL_ASSISTANTS) return redirect('messages_history')
def test_context_data_for_specific_academic_year(self): self.reviewer = ReviewerFactory(role=reviewer_role.RESEARCH, entity=self.entity_version.entity, person=self.phd_supervisor) self.client.force_login(self.phd_supervisor.user) response = self.client.get('/assistants/reviewer/?academic_year=' + str(self.previous_academic_year.id)) self.assertEqual(response.context['reviewer'], find_by_person(self.phd_supervisor)) self.assertTrue(response.context['can_delegate']) mandates_id = find_by_entity(self.reviewer.entity).values_list( 'assistant_mandate_id', flat=True) self.assertQuerysetEqual( response.context['object_list'], find_by_academic_year( self.previous_academic_year).filter(id__in=mandates_id), transform=lambda x: x)
def generate_xls(): workbook = Workbook(encoding='utf-8') worksheet = workbook.active worksheet.title = _('Mandates') worksheet.append([ _("Sector"), _("Faculty"), _("Logistics entity"), _("Institute"), _("Registration number"), _("Name"), _("Firstname"), _("Email"), "FGS", _("Age"), _("Status"), _("Renewal type"), _("Assistant type"), _("Full-time equivalent"), _("Full-time equivalent"), _("Contract length"), _("Contract start date"), _("End date"), _("Comment"), _("Absences"), _("Opinion of the sector vice-rector"), _("Justification"), _("Comment"), _("Confidential"), ]) mandates = assistant_mandate.find_by_academic_year( academic_year.starting_academic_year()) for mandate in mandates: line = construct_line(mandate) worksheet.append(line) return save_virtual_workbook(workbook)
def find_mandates_for_academic_year_and_entity(academic_year, entity): mandates_id = find_by_entity(entity).values_list( 'assistant_mandate_id', flat=True) return assistant_mandate.find_by_academic_year(academic_year).filter(id__in=mandates_id)
def test_find_by_academic_year(self): for current_mandate in assistant_mandate.find_by_academic_year( self.researched_academic_year): self.assertEqual(self.researched_academic_year, current_mandate.academic_year)
def test_find_by_academic_year(self): for current_mandate in assistant_mandate.find_by_academic_year(self.researched_academic_year): self.assertEqual(self.researched_academic_year, current_mandate.academic_year)