Esempio n. 1
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        project = context['project']

        if hasattr(project, 'grantagreement'):
            context['grant_agreement_button_text'] = 'Edit'
            context['grant_agreement_button_url'] = reverse('logged-grant_management-grant_agreement-update',
                                                            kwargs={'pk': project.grantagreement.id})
        else:
            context['grant_agreement_button_text'] = 'Create'
            context['grant_agreement_button_url'] = reverse('logged-grant_management-grant_agreement-add',
                                                            kwargs={'project': project.id})

        context.update({'active_section': 'grant_management',
                        'active_subsection': 'project-list',
                        'sidebar_template': 'grant_management/_sidebar-grant_management.tmpl'})

        context['breadcrumb'] = [{'name': 'Grant management', 'url': reverse('logged-grant_management-project-list')},
                                 {'name': f'Details ({project.key_pi()})'}]

        context['lay_summaries_count'] = project.laysummary_set.exclude(text='').count()
        context['blog_posts_count'] = project.blogpost_set.exclude(text='').count()

        context.update(comments_attachments_forms('logged-grant_management-project-comment-add', project))

        if 'tab' in self.request.GET:
            context['active_tab'] = self.request.GET['tab']
        else:
            context['active_tab'] = 'finances'

        return context
Esempio n. 2
0
def proposal_detail_eligibility_context(proposal):
    context = {}
    context.update(
        utils.comments_attachments_forms(
            'logged-call-evaluation-proposal-detail', proposal))

    context.update({
        'active_section': 'evaluation',
        'active_subsection': 'evaluation-list',
        'sidebar_template': 'evaluation/_sidebar-evaluation.tmpl'
    })

    context['breadcrumb'] = [{
        'name': 'Calls to evaluate',
        'url': reverse('logged-evaluation-list')
    }, {
        'name':
        f'List of proposals ({proposal.call.little_name()})',
        'url':
        reverse('logged-call-evaluation-list-proposals',
                kwargs={'call_id': proposal.call.id})
    }, {
        'name': 'Proposal'
    }]

    context[EligibilityDecisionForm.FORM_NAME] = EligibilityDecisionForm(
        prefix=EligibilityDecisionForm.FORM_NAME, proposal_id=proposal.id)

    context['eligibility_history'] = get_eligibility_history(proposal)

    return context
Esempio n. 3
0
    def get(self, request, *args, **kwargs):
        context = self.prepare_context(request, *args, **kwargs)

        proposal = Proposal.objects.get(id=kwargs['pk'])

        context['external_url'] = self.request.build_absolute_uri(
            reverse('proposal-update', kwargs={'uuid': proposal.uuid}))

        context.update(
            utils.comments_attachments_forms('logged-call-proposal-detail',
                                             proposal))

        context.update({
            'active_section': 'calls',
            'active_subsection': 'call-list',
            'sidebar_template': 'logged/_sidebar-calls.tmpl'
        })

        context['breadcrumb'] = [{
            'name': 'Calls',
            'url': reverse('logged-call-list')
        }, {
            'name':
            f'List of proposals ({proposal.call.little_name()})',
            'url':
            reverse('logged-call-list-proposals',
                    kwargs={'call_id': proposal.call.id})
        }, {
            'name': 'Proposal'
        }]

        context['activity'] = get_template_value_for_call(
            'activity', proposal.call)

        return render(request, 'logged/proposal-detail.tmpl', context)
Esempio n. 4
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        context.update({
            'active_section': 'lists',
            'active_subsection': 'project-list',
            'sidebar_template': 'logged/_sidebar-lists.tmpl'
        })

        context.update(
            utils.comments_attachments_forms('logged-project-comment-add',
                                             context['project']))

        context['breadcrumb'] = [{
            'name': 'Lists',
            'url': reverse('logged-lists')
        }, {
            'name': 'Projects',
            'url': reverse('logged-project-list')
        }, {
            'name':
            f'Details ({context["project"].key_pi()})'
        }]

        return context
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        call_evaluation = CallEvaluation.objects.get(id=self.kwargs['pk'])

        CheckboxSelectMultipleSortable.add_missing_related_objects(CriterionCallEvaluation, call_evaluation,
                                                                   'call_evaluation', Criterion,
                                                                   'criterion')

        criteria = []
        for criterion in call_evaluation.criterioncallevaluation_set.order_by('order', 'criterion__name'):
            criteria.append(({'in_call_evaluation': criterion.enabled,
                              'name': criterion.criterion.name,
                              'description': criterion.criterion.description})
                            )

        criteria.sort(key=lambda c: not c['in_call_evaluation'])

        context['criteria'] = criteria

        context.update({'active_section': 'evaluation',
                        'active_subsection': 'evaluation-list',
                        'sidebar_template': 'evaluation/_sidebar-evaluation.tmpl'
                        })

        context['breadcrumb'] = [{'name': 'Calls to evaluate', 'url': reverse('logged-evaluation-list')},
                                 {'name': f'Details ({call_evaluation.call.little_name()})'}]

        context.update(comments_attachments_forms('logged-call-evaluation-comment-add', call_evaluation))

        return context
Esempio n. 6
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        if hasattr(context['project'], 'grantagreement'):
            context.update(comments_attachments_forms('logged-grant_management-grant_agreement-comment-add',
                                                      context['project'].grantagreement))

        return context
Esempio n. 7
0
    def prepare_context(self, request, *args, **kwargs):
        context = super().get_context_data(**kwargs)

        if 'uuid' in kwargs:
            # Public requests are based on 'uuid'
            proposal = Proposal.objects.get(uuid=kwargs['uuid'])
        elif 'pk' in kwargs:
            # Logged requests (for the comments specially) are based on 'id'
            proposal = Proposal.objects.get(id=kwargs['pk'])
        else:
            assert False
        call = proposal.call

        context.update(call_context_for_template(call))

        context['proposal'] = proposal

        context['part_numbers'] = call.get_part_numbers_for_call()

        context['parts_with_answers'] = ProposalParts(request.POST,
                                                      request.FILES, proposal,
                                                      call).get_parts()

        if request.user.groups.filter(name='logged').exists():
            href = description = None

            if proposal.status_is_draft():
                href = reverse('proposal-update',
                               kwargs={'uuid': proposal.uuid})
                description = 'Link to draft proposal'
            elif proposal.status_is_submitted():
                href = reverse('proposal-detail',
                               kwargs={'uuid': proposal.uuid})
                description = 'Link to view proposal'

            if href and description:
                context[
                    'link_to_edit_or_display'] = f'(<a href="{href}"><i class="fas fa-link"></i> {description}</a>)'

        context.update(
            comments_attachments_forms('logged-proposal-comment-add',
                                       proposal))

        update_files_enabled = not CallEvaluation.objects.filter(
            call=proposal.call).exists()
        context['update_files_enabled'] = update_files_enabled
        if update_files_enabled is False:
            context[
                'reason_update_files_disabled'] = 'Files cannot be changed because the evaluation has already started'

        return context
Esempio n. 8
0
    def prepare_context(self, request, *args, **kwargs):
        context = super().get_context_data(**kwargs)

        call = Call.objects.get(id=kwargs['pk'])

        context['call'] = call

        context.update({
            'active_section': 'calls',
            'active_subsection': 'call-list',
            'sidebar_template': 'logged/_sidebar-calls.tmpl'
        })

        context['template_variables'] = get_template_variables_for_call(call)

        CheckboxSelectMultipleSortable.add_missing_related_objects(
            BudgetCategoryCall, call, 'call', BudgetCategory,
            'budget_category')

        budget_categories_status = []

        for budget_category_call in BudgetCategoryCall.objects.filter(
                call=call).order_by('order'):
            in_call = budget_category_call.enabled
            budget_categories_status.append({
                'in_call':
                in_call,
                'name':
                budget_category_call.budget_category.name
            })

        context['budget_categories_status'] = budget_categories_status

        context.update(
            comments_attachments_forms('logged-call-comment-add', call))

        if call.evaluation_is_closed():
            url = self.request.build_absolute_uri(
                reverse('lay-summaries-for_website', kwargs={'call': call.id}))
            if settings.HTTP_AUTH_INCOMING_LINKS:
                username_password_tag = f' userpwd="{settings.HTTP_AUTH_INCOMING_LINKS}"'
            else:
                username_password_tag = ''

            context[
                'public_lay_summaries_for_website_url'] = f'[remote_content url="{url}"{username_password_tag}]'

        context['parts'] = call.parts()

        return context
Esempio n. 9
0
    def get(self, request, *args, **kwargs):
        if not user_is_in_group_name(request.user,
                                     settings.MANAGEMENT_GROUP_NAME):
            raise PermissionDenied()

        proposal_evaluation_id = kwargs['pk']
        proposal_evaluation = ProposalEvaluation.objects.get(
            id=proposal_evaluation_id)

        context = self.prepare_context(
            request, *args, **{'pk': proposal_evaluation.proposal.id})
        add_proposal_evaluation_form(context, proposal_evaluation.proposal)

        context.update(
            comments_attachments_forms(
                'logged-proposal-evaluation-comment-add', proposal_evaluation))

        context.update({
            'active_section':
            'evaluation',
            'active_subsection':
            'evaluation-list',
            'sidebar_template':
            'evaluation/_sidebar-evaluation.tmpl'
        })

        context['breadcrumb'] = [{
            'name': 'Calls to evaluate',
            'url': reverse('logged-evaluation-list')
        }, {
            'name':
            f'List of proposals ({proposal_evaluation.proposal.call.little_name()})',
            'url':
            reverse('logged-call-evaluation-list-proposals',
                    kwargs={'call_id': proposal_evaluation.proposal.call.id})
        }, {
            'name': 'Proposal evaluation'
        }]

        return render(request, 'logged/proposal-detail-evaluation-detail.tmpl',
                      context)