Пример #1
0
def validate_plugin_version(plugin_settings):
    valid = None
    try:
        wants_version = plugin_settings.JANEWAY_VERSION.split(".")
    except AttributeError:
        # No MIN version pinned by plugin
        return

    current_version = get_janeway_version().split(".")

    for current, wants in zip(current_version, wants_version):
        current, wants = int(current), int(wants)
        if current > wants:
            valid = True
            break
        elif current < wants:
            valid = False
            break

    if valid is None:  #Handle exact match
        valid = True

    if not valid:
        raise ImproperlyConfigured(
            "Plugin {} not  compatibile with current install: {} < {}".format(
                plugin_settings.PLUGIN_NAME, current_version, wants_version))
Пример #2
0
def manager_index(request):
    """
    This is an over-ride view that is returned by core_manager_index when there is no journal.
    :param request: django request
    :return: contextualised template
    """
    form = journal_forms.JournalForm()
    modal = None
    version = get_janeway_version()

    if request.POST:
        form = journal_forms.JournalForm(request.POST)
        modal = 'new_journal'
        if form.is_valid():
            new_journal = form.save(request=request)
            new_journal.sequence = request.press.next_journal_order()
            new_journal.save()
            call_command('install_plugins')
            install.update_license(new_journal)
            install.update_issue_types(new_journal)
            new_journal.setup_directory()
            return redirect("{0}?journal={1}".format(
                reverse('core_edit_settings_group',
                        kwargs={'group': 'journal'}), new_journal.pk))

    template = 'press/press_manager_index.html'
    context = {
        'journals':
        journal_models.Journal.objects.all().order_by('sequence'),
        'form':
        form,
        'modal':
        modal,
        'published_articles':
        submission_models.Article.objects.filter(
            stage=submission_models.STAGE_PUBLISHED).select_related('journal')
        [:50],
        'version':
        version,
    }

    return render(request, template, context)