Ejemplo n.º 1
0
def process_setting_list(settings_to_get, type, journal):
    settings = []
    for setting in settings_to_get:
        settings.append({
            'name': setting,
            'object': setting_handler.get_setting(type, setting, journal),
        })

    return settings
Ejemplo n.º 2
0
    def create_default_settings(cls, user):
        settings = []
        for notification_type in NOTIFICATION_TYPES:
            for (key, value) in NOTIFICATION_MEDIA:
                setting = NotificationSetting(
                    user=user, notification_type=notification_type["label"], medium=key, send=notification_type[key]
                )

                settings.append(setting)

        return NotificationSetting.objects.bulk_create(settings)
Ejemplo n.º 3
0
    def get(self, request, user_id):
        user = User.objects.get(pk=user_id)
        settings_raw = UserSetting.objects.filter(user=user)
        settings = []

        for s in settings_raw:
            settings.append({
                'setting_name': s.setting_name,
                'setting_value': s.setting_value
            })

        return Response(settings, status=status.HTTP_200_OK)
Ejemplo n.º 4
0
    def create_default_settings(cls, user):
        settings = []
        for notification_type in NOTIFICATION_TYPES:
            for (key, value) in NOTIFICATION_MEDIA:
                setting = NotificationSetting(
                    user=user,
                    notification_type=notification_type['label'],
                    medium=key,
                    send=notification_type[key])

                settings.append(setting)

        return NotificationSetting.objects.bulk_create(settings)
Ejemplo n.º 5
0
    def migrate_dashboard_preferences(old_data):
        data = deepcopy(old_data)

        keys = [key for key, _ in data]

        if 'userprefs_userpreference' in keys:
            index = keys.index('userprefs_userpreference')
            (_, old_settings) = data[index]

            settings = []
            for setting in old_settings:
                if setting[
                        'setting'] == 'oa_dashboard' and 'Grafana' not in setting[
                            'value']:
                    continue
                settings.append(setting)

            data[index] = ('userprefs_userpreference', settings)

        return data
Ejemplo n.º 6
0
def get_settings_to_edit(group, journal):
    review_form_choices = list()
    for form in review_models.ReviewForm.objects.filter(journal=journal):
        review_form_choices.append([form.pk, form])

    if group == 'submission':
        settings = [{
            'name':
            'disable_journal_submission',
            'object':
            setting_handler.get_setting('general',
                                        'disable_journal_submission', journal)
        }, {
            'name':
            'abstract_required',
            'object':
            setting_handler.get_setting(
                'general',
                'abstract_required',
                journal,
            )
        }, {
            'name':
            'submission_intro_text',
            'object':
            setting_handler.get_setting('general', 'submission_intro_text',
                                        journal)
        }, {
            'name':
            'copyright_notice',
            'object':
            setting_handler.get_setting('general', 'copyright_notice', journal)
        }, {
            'name':
            'submission_checklist',
            'object':
            setting_handler.get_setting('general', 'submission_checklist',
                                        journal)
        }, {
            'name':
            'acceptance_criteria',
            'object':
            setting_handler.get_setting('general', 'acceptance_criteria',
                                        journal)
        }, {
            'name':
            'publication_fees',
            'object':
            setting_handler.get_setting('general', 'publication_fees', journal)
        }, {
            'name':
            'editors_for_notification',
            'object':
            setting_handler.get_setting('general', 'editors_for_notification',
                                        journal),
            'choices':
            journal.editor_pks()
        }, {
            'name':
            'user_automatically_author',
            'object':
            setting_handler.get_setting('general', 'user_automatically_author',
                                        journal),
        }, {
            'name':
            'submission_competing_interests',
            'object':
            setting_handler.get_setting('general',
                                        'submission_competing_interests',
                                        journal),
        }, {
            'name':
            'submission_summary',
            'object':
            setting_handler.get_setting('general', 'submission_summary',
                                        journal),
        }, {
            'name':
            'limit_manuscript_types',
            'object':
            setting_handler.get_setting('general', 'limit_manuscript_types',
                                        journal),
        }, {
            'name':
            'accepts_preprint_submissions',
            'object':
            setting_handler.get_setting('general',
                                        'accepts_preprint_submissions',
                                        journal),
        }, {
            'name':
            'focus_and_scope',
            'object':
            setting_handler.get_setting('general', 'focus_and_scope', journal),
        }, {
            'name':
            'publication_cycle',
            'object':
            setting_handler.get_setting('general', 'publication_cycle',
                                        journal),
        }, {
            'name':
            'peer_review_info',
            'object':
            setting_handler.get_setting('general', 'peer_review_info',
                                        journal),
        }, {
            'name':
            'copyright_submission_label',
            'object':
            setting_handler.get_setting('general',
                                        'copyright_submission_label', journal)
        }]
        setting_group = 'general'

    elif group == 'review':
        settings = [{
            'name':
            'reviewer_guidelines',
            'object':
            setting_handler.get_setting('general', 'reviewer_guidelines',
                                        journal),
        }, {
            'name':
            'default_review_visibility',
            'object':
            setting_handler.get_setting('general', 'default_review_visibility',
                                        journal),
            'choices':
            review_models.review_visibilty()
        }, {
            'name':
            'review_file_help',
            'object':
            setting_handler.get_setting('general', 'review_file_help',
                                        journal),
        }, {
            'name':
            'default_review_days',
            'object':
            setting_handler.get_setting('general', 'default_review_days',
                                        journal),
        }, {
            'name':
            'enable_one_click_access',
            'object':
            setting_handler.get_setting('general', 'enable_one_click_access',
                                        journal),
        }, {
            'name':
            'draft_decisions',
            'object':
            setting_handler.get_setting('general', 'draft_decisions', journal),
        }, {
            'name':
            'default_review_form',
            'object':
            setting_handler.get_setting('general', 'default_review_form',
                                        journal),
            'choices':
            review_form_choices
        }, {
            'name':
            'reviewer_form_download',
            'object':
            setting_handler.get_setting('general', 'reviewer_form_download',
                                        journal),
        }]
        setting_group = 'general'

    elif group == 'crossref':
        xref_settings = [
            'use_crossref', 'crossref_test', 'crossref_username',
            'crossref_password', 'crossref_email', 'crossref_name',
            'crossref_prefix', 'crossref_registrant', 'doi_display_prefix',
            'doi_display_suffix', 'doi_pattern'
        ]

        settings = process_setting_list(xref_settings, 'Identifiers', journal)
        setting_group = 'Identifiers'

    elif group == 'crosscheck':
        xref_settings = ['enable', 'username', 'password']

        settings = process_setting_list(xref_settings, 'crosscheck', journal)
        setting_group = 'crosscheck'

    elif group == 'journal':
        journal_settings = [
            'journal_name',
            'journal_issn',
            'journal_theme',
            'journal_description',
            'enable_editorial_display',
            'multi_page_editorial',
            'enable_editorial_images',
            'main_contact',
            'publisher_name',
            'publisher_url',
            'maintenance_mode',
            'maintenance_message',
            'auto_signature',
            'slack_logging',
            'slack_webhook',
            'twitter_handle',
            'switch_language',
            'google_analytics_code',
            'keyword_list_page',
        ]

        settings = process_setting_list(journal_settings, 'general', journal)
        settings[2]['choices'] = get_theme_list()
        setting_group = 'general'
        settings.append({
            'name':
            'from_address',
            'object':
            setting_handler.get_setting('email', 'from_address', journal),
        })

    elif group == 'proofing':
        proofing_settings = ['max_proofreaders']
        settings = process_setting_list(proofing_settings, 'general', journal)
        setting_group = 'general'
    elif group == 'article':
        article_settings = [
            'suppress_how_to_cite',
        ]
        settings = process_setting_list(article_settings, 'article', journal)
        setting_group = 'article'
    else:
        settings = []
        setting_group = None

    return settings, setting_group