예제 #1
0
 def test_add_staging_providers(self):
     populate_main('stage')
     providers = PreprintProvider.find()
     assert_equal(PreprintProvider.find().count(),
                  len(STAGING_PREPRINT_PROVIDERS))
     ids = [provider._id for provider in providers]
     for id in STAGING_PREPRINT_PROVIDERS:
         assert_in(id, ids)
예제 #2
0
 def test_add_default_providers(self):
     populate_main(None)
     providers = PreprintProvider.find()
     assert_equal(providers.count(), len(PROD_PREPRINT_PROVIDERS))
     ids = [provider._id for provider in providers]
     for id in PROD_PREPRINT_PROVIDERS:
         assert_in(id, ids)
     for id in set(STAGING_PREPRINT_PROVIDERS) - set(
             PROD_PREPRINT_PROVIDERS):
         assert_not_in(id, ids)
예제 #3
0
 def get_queryset(self):
     return PreprintProvider.find(self.get_query_from_request())
예제 #4
0
def get_campaigns():

    global CAMPAIGNS
    global CAMPAIGNS_LAST_REFRESHED

    logger = logging.getLogger(__name__)

    if not CAMPAIGNS or throttle_period_expired(CAMPAIGNS_LAST_REFRESHED, CAMPAIGN_REFRESH_THRESHOLD):

        # Native campaigns: PREREG and ERPC
        CAMPAIGNS = {
            'prereg': {
                'system_tag': 'prereg_challenge_campaign',
                'redirect_url': furl.furl(DOMAIN).add(path='prereg/').url,
                'confirmation_email_template': mails.CONFIRM_EMAIL_PREREG,
                'login_type': 'native',
            },
            'erpc': {
                'system_tag': 'erp_challenge_campaign',
                'redirect_url': furl.furl(DOMAIN).add(path='erpc/').url,
                'confirmation_email_template': mails.CONFIRM_EMAIL_ERPC,
                'login_type': 'native',
            },
        }

        # Institution Login
        CAMPAIGNS.update({
            'institution': {
                'system_tag': 'institution_campaign',
                'redirect_url': '',
                'login_type': 'institution',
            },
        })

        # Proxy campaigns: Preprints, both OSF and branded ones
        try:
            preprint_providers = PreprintProvider.find(Q('_id', 'ne', None))
            for provider in preprint_providers:
                if provider._id == 'osf':
                    template = 'osf'
                    name = 'OSF'
                    url_path = 'preprints/'
                else:
                    template = 'branded'
                    name = provider.name
                    url_path = 'preprints/{}'.format(provider._id)
                campaign = '{}-preprints'.format(provider._id)
                system_tag = '{}_preprints'.format(provider._id)
                CAMPAIGNS.update({
                    campaign: {
                        'system_tag': system_tag,
                        'redirect_url': furl.furl(DOMAIN).add(path=url_path).url,
                        'confirmation_email_template': mails.CONFIRM_EMAIL_PREPRINTS(template, name),
                        'login_type': 'proxy',
                        'provider': name,
                    }
                })
        except (NoResultsFound or QueryException or ImproperConfigurationError) as e:
            logger.warn('An error has occurred during campaign initialization: {}', e)

        CAMPAIGNS_LAST_REFRESHED = datetime.utcnow()

    return CAMPAIGNS
def main():
    provider = PreprintProvider.find()[0]
    provider.subjects_acceptable = create_subject_rules()
    provider.save()
예제 #6
0
def main():
    provider = PreprintProvider.find()[0]
    provider.subjects_acceptable = create_subject_rules()
    provider.save()