当前位置: 首页>>代码示例>>Python>>正文


Python utils.get_prereg_schema函数代码示例

本文整理汇总了Python中website.prereg.utils.get_prereg_schema函数的典型用法代码示例。如果您正苦于以下问题:Python get_prereg_schema函数的具体用法?Python get_prereg_schema怎么用?Python get_prereg_schema使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了get_prereg_schema函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: find_neglected_prereg_within_reminder_limit

def find_neglected_prereg_within_reminder_limit():

    queue_data = QueuedMail.objects.filter(
        email_type=PREREG_REMINDER_TYPE,
        send_at__gte=timezone.now() - settings.PREREG_AGE_LIMIT,
        data__draft_id__isnull=False
    ).values_list('data', flat=True)

    already_queued = [entry['draft_id'] for entry in queue_data]

    ## If project has been deleted since last time the script ran remove reminder email from queue.
    drafts_for_deleted_projects = list(DraftRegistration.objects
                                   .filter(_id__in=already_queued)
                                   .exclude(branched_from__is_deleted=False)
                                   .values_list('_id', flat=True))

    QueuedMail.objects.filter(
        email_type=PREREG_REMINDER_TYPE,
        data__draft_id__in=drafts_for_deleted_projects).delete()

    return DraftRegistration.objects.filter(
        deleted__isnull=True,
        registered_node=None,
        branched_from__is_deleted=False,
        registration_schema=get_prereg_schema(),
        datetime_initiated__lte=timezone.now()-settings.PREREG_WAIT_TIME,
        datetime_initiated__gte=timezone.now()-settings.PREREG_AGE_LIMIT,
    ).exclude(_id__in = already_queued)
开发者ID:aaxelb,项目名称:osf.io,代码行数:28,代码来源:remind_draft_preregistrations.py

示例2: _email_template_context

 def _email_template_context(self, user, node, is_authorizer=False, urls=None):
     registration = self._get_registration()
     prereg_schema = prereg_utils.get_prereg_schema()
     if prereg_schema in registration.registered_schema:
         return {"custom_message": " as part of the Preregistration Challenge (https://cos.io/prereg)"}
     else:
         return {}
开发者ID:kch8qx,项目名称:osf.io,代码行数:7,代码来源:sanctions.py

示例3: migrate_registrations

def migrate_registrations():
    PREREG_CHALLENGE_METASCHEMA = get_prereg_schema()
    registrations = Node.find(
        Q('is_registration', 'eq', True) &
        Q('registered_schema', 'eq', PREREG_CHALLENGE_METASCHEMA)
    )
    count = 0
    for reg in registrations:
        data = reg.registered_meta[PREREG_CHALLENGE_METASCHEMA._id]
        migrated = False
        logger.debug('Reading preregistration with id: {0}'.format(reg._id))
        for question in data.values():
            if isinstance(question.get('value'), dict):
                for value in question['value'].values():
                    migrated_one = migrate_file_meta(value)
                    if migrated_one and not migrated:
                        migrated = True
            else:
                migrated_one = migrate_file_meta(question)
                if migrated_one and not migrated:
                    migrated = True
        if migrated:
            reg.save()
            count += 1
            logger.info('Migrated preregistration with id: {0}'.format(reg._id))
    logger.info('Done with {0} prereg registrations migrated.'.format(count))
开发者ID:DataConservancy,项目名称:osf.io,代码行数:26,代码来源:migrate_registration_invalid_extra.py

示例4: migrate_drafts

def migrate_drafts(dry):
    PREREG_CHALLENGE_METASCHEMA = get_prereg_schema()
    draft_registrations = DraftRegistration.find(
        Q('registration_schema', 'eq', PREREG_CHALLENGE_METASCHEMA)
    )
    count = 0
    for r in draft_registrations:
        # NOTE: We don't query Q('approval', 'eq', None) just in case
        # approval is set but the fk doesn't exist in the database
        if r.approval or r.registered_node:
            continue
        logger.debug('Reading draft with id: {0}'.format(r._id))
        data = r.registration_metadata
        migrated = False
        for q, ans in data.iteritems():
            if isinstance(ans.get('value'), dict):
                for value in ans['value'].values():
                    migrated = migrate_file_meta(value)
            else:
                migrated = migrate_file_meta(ans)
        if migrated:
            count += 1
            logger.info('Migrated draft with id: {0}'.format(r._id))
        if not dry:
            r.save()
    logger.info('Done with {0} drafts migrated.'.format(count))
开发者ID:545zhou,项目名称:osf.io,代码行数:26,代码来源:migrate_registration_extra_drafts.py

示例5: setUp

    def setUp(self):
        super(TestPreregFiles, self).setUp()
        self.prereg_user = AuthUserFactory()
        self.user = AuthUserFactory()
        self.node = ProjectFactory(creator=self.user)

        ensure_schemas()
        prereg_schema = get_prereg_schema()
        self.d_of_qs = {
            'q7': OsfStorageFileNode(node=self.node, name='7'),
            'q11': OsfStorageFileNode(node=self.node, name='11'),
            'q16': OsfStorageFileNode(node=self.node, name='16'),
            'q12': OsfStorageFileNode(node=self.node, name='12'),
            'q13': OsfStorageFileNode(node=self.node, name='13'),
            'q19': OsfStorageFileNode(node=self.node, name='19'),
            'q26': OsfStorageFileNode(node=self.node, name='26')
        }
        data = {}
        for q, f in self.d_of_qs.iteritems():
            guid = f.get_guid(create=True)._id
            f.save()
            if q == 'q26':
                data[q] = {
                    'comments': [],
                    'value': '26',
                    'extra': [
                        {
                            'data': {
                                'provider': 'osfstorage',
                                'path': f.path,
                            },
                            'fileId': guid,
                            'nodeId': self.node._id,
                        }
                    ]
                }
                continue
            data[q] = {
                'value': {
                    'uploader': {
                        'extra': [
                            {
                                'data': {
                                    'provider': 'osfstorage',
                                    'path': f.path,
                                },
                                'fileId': guid,
                                'nodeId': self.node._id,
                            }
                        ]
                    }
                }
            }
        self.draft = DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema,
            registration_metadata=data
        )
        self.prereg_user.save()
        self.admin_user = UserFactory(osf_id=self.prereg_user.pk)
开发者ID:alexschiller,项目名称:osf.io,代码行数:60,代码来源:test_views.py

示例6: get_queryset

 def get_queryset(self):
     return DraftRegistration.objects.filter(
         registration_schema=get_prereg_schema(),
     ).exclude(
         approval__isnull=True,
         registered_node__isnull=True,
     ).order_by(self.get_ordering())
开发者ID:geeksnglitter,项目名称:osf.io,代码行数:7,代码来源:views.py

示例7: _send_rejection_email

    def _send_rejection_email(self, user, draft):
        schema = draft.registration_schema
        prereg_schema = prereg_utils.get_prereg_schema()

        if schema._id == prereg_schema._id:
            mails.send_mail(user.username, mails.PREREG_CHALLENGE_REJECTED, user=user, draft_url=draft.absolute_url)
        else:
            raise NotImplementedError("TODO: add a generic email template for registration approvals")
开发者ID:kch8qx,项目名称:osf.io,代码行数:8,代码来源:sanctions.py

示例8: submit_draft_for_review

def submit_draft_for_review(auth, node, draft, *args, **kwargs):
    """Submit for approvals and/or notifications

    :return: serialized registration
    :rtype: dict
    :raises: HTTPError if embargo end date is invalid
    """
    data = request.get_json()
    meta = {}
    registration_choice = data.get('registrationChoice', 'immediate')
    validate_registration_choice(registration_choice)
    if registration_choice == 'embargo':
        # Initiate embargo
        end_date_string = data['embargoEndDate']
        validate_embargo_end_date(end_date_string, node)
        meta['embargo_end_date'] = end_date_string
    meta['registration_choice'] = registration_choice

    if draft.registered_node and not draft.registered_node.is_deleted:
        raise HTTPError(http.BAD_REQUEST, data=dict(message_long='This draft has already been registered, if you wish to '
                                                              'register it again or submit it for review please create '
                                                              'a new draft.'))

    # Don't allow resubmission unless submission was rejected
    if draft.approval and draft.approval.state != Sanction.REJECTED:
        raise HTTPError(http.CONFLICT, data=dict(message_long='Cannot resubmit previously submitted draft.'))

    draft.submit_for_review(
        initiated_by=auth.user,
        meta=meta,
        save=True
    )

    if prereg_utils.get_prereg_schema() == draft.registration_schema:

        node.add_log(
            action=NodeLog.PREREG_REGISTRATION_INITIATED,
            params={'node': node._primary_key},
            auth=auth,
            save=False
        )
        node.save()

    push_status_message(language.AFTER_SUBMIT_FOR_REVIEW,
                        kind='info',
                        trust=False)
    return {
        'status': 'initiated',
        'urls': {
            'registrations': node.web_url_for('node_registrations')
        }
    }, http.ACCEPTED
开发者ID:mfraezz,项目名称:osf.io,代码行数:52,代码来源:drafts.py

示例9: drafts_for_user

def drafts_for_user(user):
    from website import models  # noqa

    user_projects = models.Node.find(
        Q('is_deleted', 'eq', False) &
        Q('permissions.{0}'.format(user._id), 'in', [permissions.ADMIN])
    )
    PREREG_CHALLENGE_METASCHEMA = get_prereg_schema()
    return models.DraftRegistration.find(
        Q('registration_schema', 'eq', PREREG_CHALLENGE_METASCHEMA) &
        Q('approval', 'eq', None) &
        Q('registered_node', 'eq', None) &
        Q('branched_from', 'in', [p._id for p in user_projects])
    )
开发者ID:545zhou,项目名称:osf.io,代码行数:14,代码来源:views.py

示例10: get_queryset

 def get_queryset(self):
     query = (
         Q('registration_schema', 'eq', get_prereg_schema()) &
         Q('approval', 'ne', None)
     )
     ordering = self.get_ordering()
     if 'initiator' in ordering:
         return DraftRegistration.find(query).sort(ordering)
     if ordering == SORT_BY['title']:
         return DraftRegistration.find(query).sort(
             'registration_metadata.q1.value')
     if ordering == SORT_BY['n_title']:
         return DraftRegistration.find(query).sort(
             '-registration_metadata.q1.value')
     return sort_drafts(DraftRegistration.find(query), ordering)
开发者ID:caspinelli,项目名称:osf.io,代码行数:15,代码来源:views.py

示例11: _notify_initiator

    def _notify_initiator(self):
        from website.project.model import DraftRegistration

        registration = self._get_registration()
        prereg_schema = prereg_utils.get_prereg_schema()

        draft = DraftRegistration.find_one(Q("registered_node", "eq", registration))

        if prereg_schema in registration.registered_schema:
            mails.send_mail(
                draft.initiator.username,
                mails.PREREG_CHALLENGE_ACCEPTED,
                user=draft.initiator,
                registration_url=registration.absolute_url,
                mimetype="html",
            )
开发者ID:kch8qx,项目名称:osf.io,代码行数:16,代码来源:sanctions.py

示例12: _send_rejection_email

    def _send_rejection_email(self, user, draft):
        schema = draft.registration_schema
        prereg_schema = prereg_utils.get_prereg_schema()

        if schema._id == prereg_schema._id:
            mails.send_mail(
                user.username,
                mails.PREREG_CHALLENGE_REJECTED,
                user=user,
                draft_url=draft.absolute_url,
                can_change_preferences=False,
                logo=osf_settings.OSF_PREREG_LOGO
            )
        else:
            raise NotImplementedError(
                'TODO: add a generic email template for registration approvals'
            )
开发者ID:aaxelb,项目名称:osf.io,代码行数:17,代码来源:sanctions.py

示例13: find_neglected_prereg_within_reminder_limit

def find_neglected_prereg_within_reminder_limit():

    queue_data = QueuedMail.objects.filter(
        email_type=PREREG_REMINDER_TYPE,
        send_at__gte=timezone.now() - settings.PREREG_AGE_LIMIT,
        data__draft_id__isnull=False
    ).values_list('data', flat=True)

    already_queued = [entry['draft_id'] for entry in queue_data]

    return DraftRegistration.objects.filter(
        deleted__isnull=True,
        registered_node=None,
        registration_schema=get_prereg_schema(),
        datetime_initiated__lte=timezone.now()-settings.PREREG_WAIT_TIME,
        datetime_initiated__gte=timezone.now()-settings.PREREG_AGE_LIMIT,
    ).exclude(_id__in = already_queued)
开发者ID:leb2dg,项目名称:osf.io,代码行数:17,代码来源:remind_draft_preregistrations.py

示例14: main

def main(dry_run=False, test=False):
    init_app(set_backends=True, routes=False)
    prereg_schema = get_prereg_schema()
    count = 0
    with TokuTransaction():
        prereg_drafts = DraftRegistration.find(
            Q('registration_schema', 'eq', prereg_schema)
        )
        for draft in prereg_drafts:
            # only migrate unapproved drafts
            if draft.is_approved:
                continue
            changed = migrate_draft_metadata(draft, test)
            if changed:
                count += 1
        logger.info('Migrated {} drafts'.format(count))
        if dry_run:
            raise RuntimeError('Dry run, rolling back transaction')
开发者ID:adlius,项目名称:osf.io,代码行数:18,代码来源:migrate_invalid_selectedfiles.py

示例15: submit_draft_for_review

def submit_draft_for_review(auth, node, draft, *args, **kwargs):
    """Submit for approvals and/or notifications

    :return: serialized registration
    :rtype: dict
    :raises: HTTPError if embargo end date is invalid
    """
    data = request.get_json()
    meta = {}
    registration_choice = data.get('registrationChoice', 'immediate')
    validate_registration_choice(registration_choice)
    if registration_choice == 'embargo':
        # Initiate embargo
        end_date_string = data['embargoEndDate']
        validate_embargo_end_date(end_date_string, node)
        meta['embargo_end_date'] = end_date_string
    meta['registration_choice'] = registration_choice
    draft.submit_for_review(
        initiated_by=auth.user,
        meta=meta,
        save=True
    )

    if prereg_utils.get_prereg_schema() == draft.registration_schema:

        node.add_log(
            action=NodeLog.PREREG_REGISTRATION_INITIATED,
            params={'node': node._primary_key},
            auth=auth,
            save=False
        )
        node.save()

    push_status_message(language.AFTER_SUBMIT_FOR_REVIEW,
                        kind='info',
                        trust=False)
    return {
        'status': 'initiated',
        'urls': {
            'registrations': node.web_url_for('node_registrations')
        }
    }, http.ACCEPTED
开发者ID:545zhou,项目名称:osf.io,代码行数:42,代码来源:drafts.py


注:本文中的website.prereg.utils.get_prereg_schema函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。