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


Python model.Node类代码示例

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


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

示例1: setUp

    def setUp(self):
        super(TestRenderToCSVResponse, self).setUp()
        self.app = TestApp(test_app)
        Node.remove()
        time_now = get_previous_midnight()
        NodeFactory(category='project', date_created=time_now)
        NodeFactory(category='project',
                    date_created=time_now - timedelta(days=1))
        last_time = time_now - timedelta(days=2)
        NodeFactory(category='project', date_created=last_time)
        NodeFactory(category='project', date_created=last_time)
        initial_time = last_time + timedelta(seconds=1)
        get_days_statistics(initial_time)
        midtime = last_time + timedelta(days=1, seconds=1)
        self.time = time_now + timedelta(seconds=1)

        self.initial_static = [
            'id,users,delta_users,unregistered_users,projects,delta_projects,public_projects,'
            'delta_public_projects,registered_projects,delta_registered_projects,date\r',
            construct_query(1, initial_time), '']
        self.latest_static = [
            'id,users,delta_users,unregistered_users,projects,delta_projects,public_projects,'
            'delta_public_projects,registered_projects,delta_registered_projects,date\r',
            construct_query(3, self.time),
            construct_query(2, midtime),
            construct_query(1, initial_time), '']
开发者ID:alexschiller,项目名称:osf.io,代码行数:26,代码来源:test_utils.py

示例2: setUp

 def setUp(self):
     super(TestMetricsGetProjects, self).setUp()
     Node.remove()
     self.public_node = ProjectFactory(is_public=True)
     self.private_node = ProjectFactory(is_public=False)
     self.node_2 = NodeFactory()  # creates parent project + node
     self.reg = RegistrationFactory(project=self.public_node)
开发者ID:HalcyonChimera,项目名称:osf.io,代码行数:7,代码来源:test_utils.py

示例3: collect_all_registrations_smart_folder

    def collect_all_registrations_smart_folder(self):
        from website.project.model import Node
        all_my_registrations = Node.find_for_user(
            self.auth.user,
            (
                Q('category', 'eq', 'project') &
                Q('is_deleted', 'eq', False) &
                Q('is_registration', 'eq', True) &
                Q('is_folder', 'eq', False) &
                # parent is not in the nodes list
                Q('__backrefs.parent.node.nodes', 'eq', None)
            )
        )
        comps = Node.find_for_user(
            self.auth.user,
            (
                # components only
                Q('category', 'ne', 'project') &
                # parent is not in the nodes list
                Q('__backrefs.parent.node.nodes', 'nin', all_my_registrations.get_keys()) &
                # exclude deleted nodes
                Q('is_deleted', 'eq', False) &
                # exclude registrations
                Q('is_registration', 'eq', True)
            )

        )
        children_count = all_my_registrations.count() + comps.count()
        return self.make_smart_folder(ALL_MY_REGISTRATIONS_NAME, ALL_MY_REGISTRATIONS_ID, children_count)
开发者ID:AllisonLBowers,项目名称:osf.io,代码行数:29,代码来源:rubeus.py

示例4: test_get_targets_referent_points_to_nothing

    def test_get_targets_referent_points_to_nothing(self):
        node = NodeFactory()
        bad_guid = Guid(referent=node)
        bad_guid.save()
        Node.remove(Q('_id', 'eq', node._id))

        targets = list(get_targets())
        assert_in(bad_guid, targets)
        assert_not_in(self.nontarget_guid, targets)
开发者ID:AndrewSallans,项目名称:osf.io,代码行数:9,代码来源:find_guids_without_referents.py

示例5: _rejection_url_context

    def _rejection_url_context(self, user_id):
        user_approval_state = self.approval_state.get(user_id, {})
        rejection_token = user_approval_state.get("rejection_token")
        if rejection_token:
            from website.project.model import Node

            root_registration = Node.find_one(Q("retraction", "eq", self))
            node_id = user_approval_state.get("node_id", root_registration._id)
            registration = Node.load(node_id)
            return {"node_id": registration.registered_from._id, "token": rejection_token}
开发者ID:kch8qx,项目名称:osf.io,代码行数:10,代码来源:sanctions.py

示例6: get_queryset

 def get_queryset(self):
     query = self.get_query_from_request()
     blacklisted = self.is_blacklisted(query)
     nodes = Node.find(query)
     # If attempting to filter on a blacklisted field, exclude retractions.
     if blacklisted:
         non_retracted_list = [node._id for node in nodes if not node.is_retracted]
         non_retracted_nodes = Node.find(Q('_id', 'in', non_retracted_list))
         return non_retracted_nodes
     return nodes
开发者ID:ajski,项目名称:osf.io,代码行数:10,代码来源:views.py

示例7: get_queryset

 def get_queryset(self):
     query = self.get_query_from_request()
     blacklisted = self.is_blacklisted(query)
     nodes = Node.find(query)
     # If attempting to filter on a blacklisted field, exclude withdrawals.
     if blacklisted:
         non_withdrawn_list = [node._id for node in nodes if not node.is_retracted]
         non_withdrawn_nodes = Node.find(Q("_id", "in", non_withdrawn_list))
         return non_withdrawn_nodes
     return nodes
开发者ID:cwisecarver,项目名称:osf.io,代码行数:10,代码来源:views.py

示例8: setUp

 def setUp(self):
     super(TestMetricsGetOSFStatistics, self).setUp()
     Node.remove()
     time_now = get_previous_midnight()
     NodeFactory(category="project", date_created=time_now)
     NodeFactory(category="project", date_created=time_now - timedelta(days=1))
     last_time = time_now - timedelta(days=2)
     NodeFactory(category="project", date_created=last_time)
     NodeFactory(category="project", date_created=last_time)
     get_days_statistics(last_time + timedelta(seconds=1))
     self.time = time_now + timedelta(seconds=1)
开发者ID:kch8qx,项目名称:osf.io,代码行数:11,代码来源:test_utils.py

示例9: get_target

 def get_target(self, node_id, target_id):
     node = Node.load(target_id)
     if node and node_id != target_id:
         raise ValueError('Cannot post comment to another node.')
     elif target_id == node_id:
         return Node.load(node_id)
     else:
         comment = Comment.load(target_id)
         if comment:
             return comment
         else:
             raise ValueError
开发者ID:mauromsl,项目名称:osf.io,代码行数:12,代码来源:serializers.py

示例10: _rejection_url_context

    def _rejection_url_context(self, user_id):
        user_approval_state = self.approval_state.get(user_id, {})
        rejection_token = user_approval_state.get('rejection_token')
        if rejection_token:
            from website.project.model import Node

            root_registration = Node.find_one(Q('retraction', 'eq', self))
            node_id = user_approval_state.get('node_id', root_registration._id)
            registration = Node.load(node_id)
            return {
                'node_id': registration.registered_from._id,
                'token': rejection_token,
            }
开发者ID:atelic,项目名称:osf.io,代码行数:13,代码来源:sanctions.py

示例11: get_nodes_with_oauth_grants

 def get_nodes_with_oauth_grants(self, external_account):
     # Generator of nodes which have grants for this external account
     return (
         Node.load(node_id)
         for node_id, grants in self.oauth_grants.iteritems()
         if external_account._id in grants.keys()
     )
开发者ID:huangginny,项目名称:osf.io,代码行数:7,代码来源:__init__.py

示例12: archive_success

def archive_success(dst_pk, job_pk):
    """Archiver's final callback. For the time being the use case for this task
    is to rewrite references to files selected in a registration schema (the Prereg
    Challenge being the first to expose this feature). The created references point
    to files on the registered_from Node (needed for previewing schema data), and
    must be re-associated with the corresponding files in the newly created registration.

    :param str dst_pk: primary key of registration Node

    note:: At first glance this task makes redundant calls to utils.get_file_map (which
    returns a generator yielding  (<sha256>, <file_metadata>) pairs) on the dst Node. Two
    notes about utils.get_file_map: 1) this function memoizes previous results to reduce
    overhead and 2) this function returns a generator that lazily fetches the file metadata
    of child Nodes (it is possible for a selected file to belong to a child Node) using a
    non-recursive DFS. Combined this allows for a relatively effient implementation with
    seemingly redundant calls.
    """
    create_app_context()
    dst = Node.load(dst_pk)
    # The filePicker extension addded with the Prereg Challenge registration schema
    # allows users to select files in OSFStorage as their response to some schema
    # questions. These files are references to files on the unregistered Node, and
    # consequently we must migrate those file paths after archiver has run. Using
    # sha256 hashes is a convenient way to identify files post-archival.
    for schema in dst.registered_schema:
        if schema.has_files:
            utils.migrate_file_metadata(dst, schema)
    job = ArchiveJob.load(job_pk)
    if not job.sent:
        job.sent = True
        job.save()
        dst.sanction.ask(dst.get_active_contributors_recursive(unique_users=True))
开发者ID:MattVitting,项目名称:osf.io,代码行数:32,代码来源:tasks.py

示例13: main

def main(send_email=False):
    logger.info('Starting Project storage audit')
    init_app(set_backends=True, routes=False)

    lines = []
    projects = {}
    users = defaultdict(lambda: (0, 0))

    for node in Node.find(Q('__backrefs.parent.node.nodes', 'eq', None)):  # ODM hack to ignore all nodes with parents
        if node._id in WHITE_LIST:
            continue  # Dont count whitelisted nodes against users
        projects[node] = get_usage(node)
        for contrib in node.contributors:
            if node.can_edit(user=contrib):
                users[contrib] = tuple(map(sum, zip(users[contrib], projects[node])))  # Adds tuples together, map(sum, zip((a, b), (c, d))) -> (a+c, b+d)

    for collection, limit in ((users, USER_LIMIT), (projects, PROJECT_LIMIT)):
        for item, (used, deleted) in filter(functools.partial(limit_filter, limit), collection.items()):
            line = '{!r} has exceeded the limit {:.2f}GBs ({}b) with {:.2f}GBs ({}b) used and {:.2f}GBs ({}b) deleted.'.format(item, limit / GBs, limit, used / GBs, used, deleted / GBs, deleted)
            logger.info(line)
            lines.append(line)

    if lines:
        if send_email:
            logger.info('Sending email...')
            mails.send_mail('[email protected]', mails.EMPTY, body='\n'.join(lines), subject='Script: OsfStorage usage audit')
        else:
            logger.info('send_email is False, not sending email'.format(len(lines)))
        logger.info('{} offending project(s) and user(s) found'.format(len(lines)))
    else:
        logger.info('No offending projects or users found')
开发者ID:AllisonLBowers,项目名称:osf.io,代码行数:31,代码来源:usage_audit.py

示例14: _on_complete

    def _on_complete(self, user):
        from website.project.model import Node, NodeLog

        parent_registration = Node.find_one(Q('retraction', 'eq', self))
        parent_registration.registered_from.add_log(
            action=NodeLog.RETRACTION_APPROVED,
            params={
                'node': parent_registration.registered_from_id,
                'retraction_id': self._id,
                'registration': parent_registration._id
            },
            auth=Auth(self.initiated_by),
        )
        # Remove any embargoes associated with the registration
        if parent_registration.embargo_end_date or parent_registration.is_pending_embargo:
            parent_registration.embargo.state = self.REJECTED
            parent_registration.registered_from.add_log(
                action=NodeLog.EMBARGO_CANCELLED,
                params={
                    'node': parent_registration.registered_from_id,
                    'registration': parent_registration._id,
                    'embargo_id': parent_registration.embargo._id,
                },
                auth=Auth(self.initiated_by),
            )
            parent_registration.embargo.save()
        # Ensure retracted registration is public
        # Pass auth=None because the registration initiator may not be
        # an admin on components (component admins had the opportunity
        # to disapprove the retraction by this point)
        for node in parent_registration.node_and_primary_descendants():
            node.set_privacy('public', auth=None, save=True, log=False)
            node.update_search()
开发者ID:atelic,项目名称:osf.io,代码行数:33,代码来源:sanctions.py

示例15: _email_template_context

    def _email_template_context(self, user, node, is_authorizer=False, urls=None):
        urls = urls or self.stashed_urls.get(user._id, {})
        registration_link = urls.get('view', self._view_url(user._id, node))
        if is_authorizer:
            from website.project.model import Node

            approval_link = urls.get('approve', '')
            disapproval_link = urls.get('reject', '')
            approval_time_span = settings.RETRACTION_PENDING_TIME.days * 24

            registration = Node.find_one(Q('retraction', 'eq', self))

            return {
                'is_initiator': self.initiated_by == user,
                'initiated_by': self.initiated_by.fullname,
                'project_name': registration.title,
                'registration_link': registration_link,
                'approval_link': approval_link,
                'disapproval_link': disapproval_link,
                'approval_time_span': approval_time_span,
            }
        else:
            return {
                'initiated_by': self.initiated_by.fullname,
                'registration_link': registration_link,
            }
开发者ID:atelic,项目名称:osf.io,代码行数:26,代码来源:sanctions.py


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