示例#1
0
 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
示例#3
0
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)
示例#4
0
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)
示例#5
0
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
示例#6
0
    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)
示例#8
0
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
                              )
示例#10
0
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')
示例#11
0
 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)
示例#12
0
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)
示例#13
0
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)
示例#14
0
 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)