示例#1
0
    def test_drafts_for_user_omits_registered(self):
        prereg_schema = MetaSchema.find_one(
            Q('name', 'eq', 'Prereg Challenge') & Q('schema_version', 'eq', 2))

        d1 = factories.DraftRegistrationFactory(
            initiator=self.user, registration_schema=prereg_schema)
        d2 = factories.DraftRegistrationFactory(
            initiator=self.user, registration_schema=prereg_schema)
        d3 = factories.DraftRegistrationFactory(
            initiator=self.user, registration_schema=prereg_schema)
        d1.registered_node = factories.RegistrationFactory()
        d1.save()
        drafts = drafts_for_user(self.user, 'prereg')
        for d in drafts:
            assert_in(d._id, (d2._id, d3._id))
            assert_not_equal(d._id, d1._id)
示例#2
0
def prereg_landing_page(auth, **kwargs):
    """Landing page for the prereg challenge"""
    campaign = request.path.strip('/') or 'prereg'
    registerable_nodes = [
        node for node in auth.user.contributor_to
        if node.has_permission(user=auth.user, permission='admin')
    ]
    has_projects = bool(registerable_nodes)
    has_draft_registrations = bool(
        utils.drafts_for_user(auth.user, campaign).count())

    return {
        'has_draft_registrations': has_draft_registrations,
        'has_projects': has_projects,
        'campaign_long': utils.PREREG_CAMPAIGNS[campaign],
        'campaign_short': campaign
    }
示例#3
0
文件: views.py 项目: adlius/osf.io
def prereg_landing_page(auth, **kwargs):
    """Landing page for the prereg challenge"""
    campaign = request.path.strip('/') or 'prereg'
    registerable_nodes = [
        node for node
        in auth.user.contributor_to
        if node.has_permission(user=auth.user, permission='admin')
    ]
    has_projects = bool(registerable_nodes)
    has_draft_registrations = bool(utils.drafts_for_user(auth.user, campaign).count())

    return {
        'has_draft_registrations': has_draft_registrations,
        'has_projects': has_projects,
        'campaign_long': utils.PREREG_CAMPAIGNS[campaign],
        'campaign_short': campaign
    }
示例#4
0
    def test_drafts_for_user_omits_registered(self):
        prereg_schema = MetaSchema.objects.get(name='Prereg Challenge', schema_version=2)

        d1 = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema
        )
        d2 = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema
        )
        d3 = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema
        )
        d1.registered_node = factories.RegistrationFactory()
        d1.save()
        drafts = drafts_for_user(self.user, 'prereg')
        for d in drafts:
            assert_in(d._id, (d2._id, d3._id))
            assert_not_equal(d._id, d1._id)
示例#5
0
def prereg_draft_registrations(auth, **kwargs):
    """API endpoint; returns prereg draft registrations the user can resume"""
    campaign = kwargs.get('campaign', 'prereg')
    drafts = utils.drafts_for_user(auth.user, campaign)
    return {
        'draftRegistrations': [{
            'dateUpdated':
            iso8601format(draft.datetime_updated),
            'dateInitiated':
            iso8601format(draft.datetime_initiated),
            'node': {
                'title': draft.branched_from.title,
            },
            'initiator': {
                'name': draft.initiator.fullname,
            },
            'url':
            draft.branched_from.web_url_for(
                'edit_draft_registration_page',
                draft_id=draft._id,
            ),
        } for draft in drafts],
    }
示例#6
0
文件: views.py 项目: adlius/osf.io
def prereg_draft_registrations(auth, **kwargs):
    """API endpoint; returns prereg draft registrations the user can resume"""
    campaign = kwargs.get('campaign', 'prereg')
    drafts = utils.drafts_for_user(auth.user, campaign)
    return {
        'draftRegistrations': [
            {
                'dateUpdated': iso8601format(draft.datetime_updated),
                'dateInitiated': iso8601format(draft.datetime_initiated),
                'node': {
                    'title': draft.branched_from.title,
                },
                'initiator': {
                    'name': draft.initiator.fullname,
                },
                'url': draft.branched_from.web_url_for(
                    'edit_draft_registration_page',
                    draft_id=draft._id,
                ),
            }
            for draft in drafts
        ],
    }
示例#7
0
    def test_drafts_for_user_omits_registered(self):
        prereg_schema = MetaSchema.find_one(
            Q('name', 'eq', 'Prereg Challenge') &
            Q('schema_version', 'eq', 2)
        )

        d1 = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema
        )
        d2 = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema
        )
        d3 = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema
        )
        d1.registered_node = factories.ProjectFactory()
        d1.save()
        drafts = drafts_for_user(self.user, 'prereg')
        for d in drafts:
            assert_in(d._id, (d2._id, d3._id))
            assert_not_equal(d._id, d1._id)
示例#8
0
文件: views.py 项目: mfraezz/osf.io
def prereg_landing_page(**kwargs):
    """Landing page for the prereg challenge"""
    auth = kwargs['auth'] = Auth.from_kwargs(request.args.to_dict(), kwargs)
    is_logged_in = kwargs['auth'].logged_in
    campaign = request.path.strip('/') or 'prereg'
    if is_logged_in:
        registerable_nodes = [
            node for node
            in auth.user.contributor_to
            if node.has_permission(user=auth.user, permission='admin')
        ]
        has_projects = bool(registerable_nodes)
        has_draft_registrations = bool(utils.drafts_for_user(auth.user, campaign).count())
    else:
        has_projects = False
        has_draft_registrations = False

    return {
        'is_logged_in': is_logged_in,
        'has_draft_registrations': has_draft_registrations,
        'has_projects': has_projects,
        'campaign_long': utils.PREREG_CAMPAIGNS[campaign],
        'campaign_short': campaign
    }
示例#9
0
def prereg_landing_page(**kwargs):
    """Landing page for the prereg challenge"""
    auth = kwargs['auth'] = Auth.from_kwargs(request.args.to_dict(), kwargs)
    is_logged_in = kwargs['auth'].logged_in
    campaign = request.path.strip('/') or 'prereg'
    if is_logged_in:
        registerable_nodes = [
            node for node in auth.user.contributor_to
            if node.has_permission(user=auth.user, permission='admin')
        ]
        has_projects = bool(registerable_nodes)
        has_draft_registrations = bool(
            utils.drafts_for_user(auth.user, campaign).count())
    else:
        has_projects = False
        has_draft_registrations = False

    return {
        'is_logged_in': is_logged_in,
        'has_draft_registrations': has_draft_registrations,
        'has_projects': has_projects,
        'campaign_long': utils.PREREG_CAMPAIGNS[campaign],
        'campaign_short': campaign
    }