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))
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)