예제 #1
0
파일: hooks.py 프로젝트: BirkbeckCTP/apc
def waiver_application(context):
    plugin = plugin_settings.get_self()
    request = context['request']
    article = context['article']

    waiver_text = setting_handler.get_plugin_setting(
        plugin,
        'waiver_text',
        request.journal,
        create=True,
        pretty='Waiver Text',
    )
    enable_waivers = setting_handler.get_plugin_setting(
        plugin,
        'enable_waivers',
        request.journal,
        create=True,
        pretty='Enable Waivers',
    )
    if enable_waivers.value == 'on':
        return render_to_string(
            'apc/article_waiver_app.html',
            {
                'request': request,
                'waiver_text': waiver_text.value,
                'article': article,
            },
        )
    else:
        return ''
예제 #2
0
파일: hooks.py 프로젝트: BirkbeckCTP/apc
def publication_fees(context):
    plugin = plugin_settings.get_self()
    request = context['request']

    enable_apcs = setting_handler.get_plugin_setting(
        plugin,
        'enable_apcs',
        request.journal,
        create=True,
        pretty='Enable APCs',
    )
    track_apcs = setting_handler.get_plugin_setting(
        plugin,
        'track_apcs',
        request.journal,
        create=True,
        pretty='Track APCs',
    )

    sections = submission_models.Section.objects.filter(
        journal=request.journal,
        public_submissions=True,
    ).prefetch_related('sectionapc')

    if track_apcs.value == 'on':
        return ''
    elif enable_apcs.value == 'on':
        return render_to_string(
            'apc/publication_fees.html',
            {'sections': sections},
        )
    return ''
예제 #3
0
def set_apc(**kwargs):
    request = kwargs.get('request', None)
    article = kwargs.get('article', None)
    plugin = plugin_settings.get_self()

    if request and article:

        try:
            enable_apcs = setting_handler.get_plugin_setting(
                plugin,
                'enable_apcs',
                request.journal,
            )

            track_apcs = setting_handler.get_plugin_setting(
                plugin,
                'track_apcs',
                request.journal,
            )

            if enable_apcs.processed_value or track_apcs.processed_value:

                try:
                    section_apc = models.SectionAPC.objects.get(
                        section=article.section, )
                except models.SectionAPC.DoesNotExist:
                    messages.add_message(
                        request, messages.WARNING,
                        'APC Management is enabled but this'
                        ' section has no APC.')
                    return

                models.ArticleAPC.objects.create(
                    article=article,
                    section_apc=section_apc,
                    value=section_apc.value,
                    currency=section_apc.currency,
                )
        except (ObjectDoesNotExist, IndexError):
            pass
예제 #4
0
파일: views.py 프로젝트: BirkbeckCTP/apc
def settings(request):
    plugin = plugin_settings.get_self()
    enable_apcs = setting_handler.get_plugin_setting(
        plugin,
        'enable_apcs',
        request.journal,
        create=True,
        pretty='Enable APCs',
    )
    track_apcs = setting_handler.get_plugin_setting(
        plugin,
        'track_apcs',
        request.journal,
        create=True,
        pretty='Track APCs',
    )
    waiver_text = setting_handler.get_plugin_setting(
        plugin,
        'waiver_text',
        request.journal,
        create=True,
        pretty='Waiver Text',
    )
    enable_waivers = setting_handler.get_plugin_setting(
        plugin,
        'enable_waivers',
        request.journal,
        create=True,
        pretty='Enable Waivers',
    )

    if request.POST:
        apc_post = request.POST.get('enable_apcs')
        track_post = request.POST.get('track_apcs')
        text_post = request.POST.get('waiver_text')
        waivers_post = request.POST.get('enable_waivers')

        setting_handler.save_plugin_setting(
            plugin,
            'enable_apcs',
            apc_post,
            request.journal,
        )
        setting_handler.save_plugin_setting(
            plugin,
            'track_apcs',
            track_post,
            request.journal,
        )
        setting_handler.save_plugin_setting(
            plugin,
            'waiver_text',
            text_post,
            request.journal,
        )
        setting_handler.save_plugin_setting(
            plugin,
            'enable_waivers',
            waivers_post,
            request.journal,
        )

        messages.add_message(request, messages.SUCCESS, 'Setting updated.')
        return redirect(reverse('apc_settings'))

    template = 'apc/settings.html'
    context = {
        'enable_apc': enable_apcs.value if enable_apcs else '',
        'track_apcs': track_apcs.value if track_apcs else '',
        'enable_waivers': enable_waivers.value if enable_waivers else '',
        'waiver_text': waiver_text.value if waiver_text else '',
    }

    return render(request, template, context)