def user_is_assistant_and_procedure_is_open_and_workflow_is_assistant(user): try: mandate = assistant_mandate.find_mandate_by_assistant_for_academic_year( academic_assistant.find_by_person(user.person), academic_year.current_academic_year()) if mandate.state != assistant_mandate_state.TRTS: return False except assistant_mandate.AssistantMandate.DoesNotExist: return False else: return user.is_authenticated and settings.access_to_procedure_is_open() and \ academic_assistant.find_by_person(user.person)
def user_is_assistant_and_procedure_is_open_and_workflow_is_assistant(user): try: mandate = assistant_mandate.find_mandate_by_assistant_for_academic_year( academic_assistant.find_by_person(user.person), academic_year.current_academic_year()) if mandate.state != assistant_mandate_state.TRTS: return False except assistant_mandate.AssistantMandate.DoesNotExist: return False else: return user.is_authenticated() and settings.access_to_procedure_is_open() and \ academic_assistant.find_by_person(user.person)
def user_is_assistant_and_can_see_file(user): try: if user.is_authenticated and settings.assistants_can_see_file(): return academic_assistant.find_by_person(user.person) else: return False except ObjectDoesNotExist: return False
def user_is_assistant_and_procedure_is_open(user): try: if user.is_authenticated() and settings.access_to_procedure_is_open(): return academic_assistant.find_by_person(user.person) else: return False except ObjectDoesNotExist: return False
def assistant_home(request): try: academic_assistant.find_by_person(person=request.user.person) if settings.access_to_procedure_is_open(): return HttpResponseRedirect(reverse('assistant_mandates')) else: return HttpResponseRedirect(reverse('access_denied')) except academic_assistant.AcademicAssistant.DoesNotExist: try: manager.find_by_person(person=request.user.person) return HttpResponseRedirect(reverse('manager_home')) except manager.Manager.DoesNotExist: try: reviewer.find_by_person(person=request.user.person) return HttpResponseRedirect(reverse('reviewer_mandates_list')) except reviewer.Reviewer.DoesNotExist: return HttpResponseRedirect(reverse('access_denied'))
def user_is_assistant_and_can_see_file(user): try: if user.is_authenticated() and settings.assistants_can_see_file(): return academic_assistant.find_by_person(user.person) else: return False except ObjectDoesNotExist: return False
def build_doc(request, mandates): year = mandates[0].academic_year filename = ('%s_%s_%s.pdf' % (_('assistants_mandates'), year, 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 = [] if academic_assistant.find_by_person(find_by_user(request.user)): role = user_role.ASSISTANT elif reviewer.find_by_person(find_by_user(request.user)): role = reviewer.find_by_person(find_by_user(request.user)).role else: role = user_role.ADMINISTRATOR for mandate in mandates: add_mandate_content(content, mandate, styles, role) doc.build(content, add_header_footer) pdf = buffer.getvalue() buffer.close() response.write(pdf) return response
def get_context_data(self, **kwargs): context = super(AssistantMandatesListView, self).get_context_data(**kwargs) context['assistant'] = academic_assistant.find_by_person(person.find_by_user(self.request.user)) context['current_academic_year'] = current_academic_year() context['can_see_file'] = settings.assistants_can_see_file() for mandate in context['object_list']: entities_id = mandate.mandateentity_set.all().order_by('id').values_list('entity', flat=True) mandate.entities = base.models.entity.find_versions_from_entites(entities_id, mandate.academic_year.start_date) return context
def get_context_data(self, **kwargs): context = super(AssistantLearningUnitsListView, self).get_context_data(**kwargs) mandate = assistant_mandate.find_mandate_by_assistant_for_academic_year( academic_assistant.find_by_person(self.request.user.person), academic_year.current_academic_year()) context['mandate_id'] = mandate.id context['assistant_type'] = mandate.assistant_type files = assistant_document_file.find_by_assistant_mandate_and_description(mandate, document_type.TUTORING_DOCUMENT) context['files'] = files context['document_type'] = document_type.TUTORING_DOCUMENT return context
def get_context_data(self, **kwargs): context = super(AssistantMandatesListView, self).get_context_data(**kwargs) context['assistant'] = academic_assistant.find_by_person( person.find_by_user(self.request.user)) context['can_see_file'] = settings.assistants_can_see_file() for mandate in context['object_list']: entities_id = mandate.mandateentity_set.all().order_by( 'id').values_list('entity', flat=True) mandate.entities = base.models.entity.find_versions_from_entites( entities_id, mandate.academic_year.start_date) return context
def assistant_home(request): if (settings.access_to_procedure_is_open() or settings.assistants_can_see_file()) \ and academic_assistant.find_by_person(person=request.user.person): return HttpResponseRedirect(reverse('assistant_mandates')) else: try: manager.find_by_person(person=request.user.person) return HttpResponseRedirect(reverse('manager_home')) except manager.Manager.DoesNotExist: if reviewer.find_by_person(person=request.user.person): return HttpResponseRedirect(reverse('reviewer_mandates_list_todo')) else: return HttpResponseRedirect(reverse('access_denied'))
def get_context_data(self, **kwargs): context = super(AssistantLearningUnitsListView, self).get_context_data(**kwargs) mandate = assistant_mandate.find_mandate_by_assistant_for_academic_year( academic_assistant.find_by_person(self.request.user.person), academic_year.current_academic_year()) context['mandate_id'] = mandate.id context['assistant_type'] = mandate.assistant_type files = assistant_document_file.find_by_assistant_mandate_and_description( mandate, document_type.TUTORING_DOCUMENT) context['files'] = files context['document_type'] = document_type.TUTORING_DOCUMENT return context
def assistant_home(request): if (settings.access_to_procedure_is_open() or settings.assistants_can_see_file()) \ and academic_assistant.find_by_person(person=request.user.person): return HttpResponseRedirect(reverse('assistant_mandates')) else: try: manager.find_by_person(person=request.user.person) return HttpResponseRedirect(reverse('manager_home')) except manager.Manager.DoesNotExist: if reviewer.find_by_person(person=request.user.person): return HttpResponseRedirect( reverse('reviewer_mandates_list_todo')) else: return HttpResponseRedirect(reverse('access_denied'))
def mandate_change_state(request): mandate = assistant_mandate.find_mandate_by_id(request.POST.get("mandate_id")) if mandate: if 'bt_mandate_accept' in request.POST: mandate.state = assistant_mandate_state.TRTS elif 'bt_mandate_decline' in request.POST: mandate.state = assistant_mandate_state.DECLINED faculty = mandate_entity.find_by_mandate_and_type(mandate, entity_type.FACULTY) if faculty: faculty_dean = reviewer.find_by_entity_and_role( faculty.first().entity, reviewer_role.SUPERVISION).first() pers = person.find_by_user(request.user) assistant = academic_assistant.find_by_person(pers) html_template_ref = 'assistant_dean_assistant_decline_html' txt_template_ref = 'assistant_dean_assistant_decline_txt' send_message(person=faculty_dean.person, html_template_ref=html_template_ref, txt_template_ref=txt_template_ref, assistant=assistant) mandate.save() return HttpResponseRedirect(reverse('assistant_mandates'))
def build_doc(request, mandates, type='default'): if mandates: year = mandates[0].academic_year else: year = academic_year.current_academic_year() if type is 'export_to_sap': filename = ('%s_%s_%s.pdf' % (mandates[0].sap_id, year, mandates[0].assistant.person)) else: filename = ('%s_%s_%s.pdf' % (_('assistants_mandates'), year, 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 = [] if academic_assistant.find_by_person(find_by_user(request.user)): role = user_role.ASSISTANT elif reviewer.find_by_person(find_by_user(request.user)): role = reviewer.find_by_person(find_by_user(request.user)).role else: role = user_role.ADMINISTRATOR if type is 'default' or type is 'export_to_sap': for mandate in mandates: add_mandate_content(content, mandate, styles, role) else: content.append(create_paragraph("%s (%s)<br />" % (_('declined_mandates'), year), '', styles["BodyText"])) if mandates: write_table(content, add_declined_mandates(mandates, styles['Tiny']), COLS_WIDTH_FOR_DECLINED_MANDATES) content.append(PageBreak()) doc.build(content, add_header_footer) pdf = buffer.getvalue() buffer.close() response.write(pdf) return response
def mandate_change_state(request): mandate_id = request.POST.get("mandate_id") mandate = assistant_mandate.find_mandate_by_id(mandate_id) if 'bt_mandate_accept' in request.POST: mandate.state = assistant_mandate_state.TRTS elif 'bt_mandate_decline' in request.POST: mandate.state = assistant_mandate_state.DECLINED faculty = mandate_entity.find_by_mandate_and_type( mandate, entity_type.FACULTY) if faculty: faculty_dean = reviewer.find_by_entity_and_role( faculty.first().structure, reviewer_role.SUPERVISION).first() assistant = academic_assistant.find_by_person( person.find_by_user(request.user)) html_template_ref = 'assistant_dean_assistant_decline_html' txt_template_ref = 'assistant_dean_assistant_decline_txt' send_message(person=faculty_dean.person, html_template_ref=html_template_ref, txt_template_ref=txt_template_ref, assistant=assistant) mandate.save() return HttpResponseRedirect(reverse('assistant_mandates'))
def reviews_view(request): mandate = assistant_mandate.find_mandate_by_assistant_for_academic_year( academic_assistant.find_by_person(request.user.person), academic_year.current_academic_year()) reviews = review.find_by_mandate(mandate.id) return render(request, 'mandate_reviews_view.html', {'reviews': reviews})
def get_queryset(self): assistant = academic_assistant.find_by_person( person.find_by_user(self.request.user)) return assistant_mandate.find_mandate_by_academic_assistant(assistant)
def get_queryset(self): mandate = assistant_mandate.find_mandate_by_assistant_for_academic_year( academic_assistant.find_by_person(self.request.user.person), academic_year.current_academic_year()) queryset = tutoring_learning_unit_year.find_by_mandate(mandate) return queryset
def get_queryset(self): mandate = assistant_mandate.find_mandate_by_assistant_for_academic_year( academic_assistant.find_by_person(self.request.user.person), academic_year.current_academic_year()) queryset = tutoring_learning_unit_year.find_by_mandate(mandate) return queryset
def test_func(self): return (assistant_access.user_is_assistant_and_procedure_is_open(self.request.user) or (academic_assistant.find_by_person(self.request.user.person) and settings.assistants_can_see_file()))
def get_queryset(self): assistant = academic_assistant.find_by_person(person.find_by_user(self.request.user)) return assistant_mandate.find_mandate_by_academic_assistant(assistant)
def test_func(self): return (assistant_access.user_is_assistant_and_procedure_is_open( self.request.user) or (academic_assistant.find_by_person(self.request.user.person) and settings.assistants_can_see_file()))
def build_doc(request: http.HttpRequest, mandates: Sequence[assistant_mandate.AssistantMandate], type: str = 'default'): if mandates: year = mandates[0].academic_year else: year = academic_year.starting_academic_year() if type == 'export_to_sap': filename = ('%s_%s_%s.pdf' % (mandates[0].sap_id, year, mandates[0].assistant.person)) else: filename = ( '%s_%s_%s.pdf' % (_('assistants_mandates'), year, 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 = [] roles = [] if academic_assistant.find_by_person(find_by_user(request.user)): roles = [user_role.ASSISTANT] elif reviewer.find_by_person(find_by_user(request.user)): roles = reviewer.find_by_person(find_by_user( request.user)).values_list("role", flat=True) else: roles = [user_role.ADMINISTRATOR] if type == 'default' or type == 'export_to_sap': for mandate in mandates: add_mandate_content(content, mandate, styles, roles) elif type == 'declined_to_sap': for mandate in mandates: add_declined_mandate_content(content, mandate, styles) else: content.append( create_paragraph( "%s (%s)<br />" % (_('Assistants who have declined their renewal'), year), '', styles["BodyText"])) if mandates: write_table(content, add_declined_mandates(mandates, styles['Tiny']), COLS_WIDTH_FOR_DECLINED_MANDATES) content.append(PageBreak()) doc.build(content, add_header_footer) pdf = buffer.getvalue() buffer.close() response.write(pdf) return response
def user_is_assistant_and_procedure_is_open(user): return user.is_authenticated() and settings.access_to_procedure_is_open() and \ academic_assistant.find_by_person(user.person)
def user_is_assistant_and_procedure_is_open(user): return user.is_authenticated and settings.access_to_procedure_is_open() and \ academic_assistant.find_by_person(user.person)