예제 #1
0
파일: tasks.py 프로젝트: oncletom/udata
def purge_datasets(self):
    for dataset in Dataset.objects(deleted__ne=None):
        log.info(f'Purging dataset {dataset}')
        # Remove followers
        Follow.objects(following=dataset).delete()
        # Remove issues
        Issue.objects(subject=dataset).delete()
        # Remove discussions
        Discussion.objects(subject=dataset).delete()
        # Remove activity
        Activity.objects(related_to=dataset).delete()
        # Remove topics' related dataset
        for topic in Topic.objects(datasets=dataset):
            datasets = topic.datasets
            datasets.remove(dataset)
            topic.update(datasets=datasets)
        # Remove HarvestItem references
        HarvestJob.objects(items__dataset=dataset).update(
            set__items__S__dataset=None)
        # Remove each dataset's resource's file
        storage = storages.resources
        for resource in dataset.resources:
            if resource.fs_filename is not None:
                storage.delete(resource.fs_filename)
        # Remove each dataset related community resource and it's file
        community_resources = CommunityResource.objects(dataset=dataset)
        for community_resource in community_resources:
            if community_resource.fs_filename is not None:
                storage.delete(community_resource.fs_filename)
            community_resource.delete()
        # Remove dataset
        dataset.delete()
예제 #2
0
def test_purge_datasets():
    datasets = [
        Dataset.objects.create(title='delete me', deleted='2016-01-01'),
        Dataset.objects.create(title='keep me'),
    ]

    topic = Topic.objects.create(name='test topic', datasets=datasets)
    tasks.purge_datasets()

    topic = Topic.objects(name='test topic').first()
    assert topic.datasets[0] == datasets[1]
예제 #3
0
    def test_purge_datasets(self):
        datasets = [
            Dataset.objects.create(title='delete me', deleted='2016-01-01'),
            Dataset.objects.create(title='keep me'),
        ]

        topic = Topic.objects.create(name='test topic', datasets=datasets)
        tasks.purge_datasets()

        topic = Topic.objects(name='test topic').first()
        self.assertListEqual(topic.datasets, [datasets[1]])
예제 #4
0
def test_purge_datasets():
    datasets = [
        Dataset.objects.create(title='delete me', deleted='2016-01-01'),
        Dataset.objects.create(title='keep me'),
    ]

    topic = Topic.objects.create(name='test topic', datasets=datasets)
    tasks.purge_datasets()

    topic = Topic.objects(name='test topic').first()
    assert topic.datasets[0] == datasets[1]
예제 #5
0
    def test_purge_datasets(self):
        datasets = [
            Dataset.objects.create(title='delete me', deleted='2016-01-01'),
            Dataset.objects.create(title='keep me'),
        ]

        topic = Topic.objects.create(name='test topic', datasets=datasets)
        tasks.purge_datasets()

        topic = Topic.objects(name='test topic').first()
        self.assertListEqual(topic.datasets, [datasets[1]])
예제 #6
0
파일: tasks.py 프로젝트: anukat2015/udata
def purge_datasets(self):
    for dataset in Dataset.objects(deleted__ne=None):
        log.info('Purging dataset "{0}"'.format(dataset))
        # Remove followers
        FollowDataset.objects(following=dataset).delete()
        # Remove issues
        DatasetIssue.objects(subject=dataset).delete()
        # Remove discussions
        DatasetDiscussion.objects(subject=dataset).delete()
        # Remove activity
        Activity.objects(related_to=dataset).delete()
        # Remove metrics
        Metrics.objects(object_id=dataset.id).delete()
        # Remove topics' related dataset
        for topic in Topic.objects(datasets=dataset):
            datasets = topic.datasets
            datasets.remove(dataset)
            topic.update(datasets=datasets)
        # Remove
        dataset.delete()
예제 #7
0
def purge_datasets(self):
    for dataset in Dataset.objects(deleted__ne=None):
        log.info('Purging dataset "{0}"'.format(dataset))
        # Remove followers
        FollowDataset.objects(following=dataset).delete()
        # Remove issues
        DatasetIssue.objects(subject=dataset).delete()
        # Remove discussions
        DatasetDiscussion.objects(subject=dataset).delete()
        # Remove activity
        Activity.objects(related_to=dataset).delete()
        # Remove metrics
        Metrics.objects(object_id=dataset.id).delete()
        # Remove topics' related dataset
        for topic in Topic.objects(datasets=dataset):
            datasets = topic.datasets
            datasets.remove(dataset)
            topic.update(datasets=datasets)
        # Remove
        dataset.delete()
예제 #8
0
def purge_datasets(self):
    for dataset in Dataset.objects(deleted__ne=None):
        log.info('Purging dataset "{0}"'.format(dataset))
        # Remove followers
        Follow.objects(following=dataset).delete()
        # Remove issues
        Issue.objects(subject=dataset).delete()
        # Remove discussions
        Discussion.objects(subject=dataset).delete()
        # Remove activity
        Activity.objects(related_to=dataset).delete()
        # Remove topics' related dataset
        for topic in Topic.objects(datasets=dataset):
            datasets = topic.datasets
            datasets.remove(dataset)
            topic.update(datasets=datasets)
        # Remove HarvestItem references
        HarvestJob.objects(items__dataset=dataset).update(
            set__items__S__dataset=None)
        # Remove
        dataset.delete()
예제 #9
0
def test_purge_datasets():
    datasets = [
        Dataset.objects.create(title='delete me', deleted='2016-01-01'),
        Dataset.objects.create(title='keep me'),
    ]

    topic = Topic.objects.create(name='test topic', datasets=datasets)

    user = UserFactory()
    transfer = Transfer.objects.create(
        owner=user,
        recipient=user,
        subject=datasets[0],
        comment='comment',
    )

    tasks.purge_datasets()

    assert Transfer.objects.filter(id=transfer.id).count() == 0

    topic = Topic.objects(name='test topic').first()
    assert topic.datasets[0] == datasets[1]
예제 #10
0
파일: tasks.py 프로젝트: opendatateam/udata
def purge_datasets(self):
    for dataset in Dataset.objects(deleted__ne=None):
        log.info(f'Purging dataset {dataset}')
        # Remove followers
        Follow.objects(following=dataset).delete()
        # Remove discussions
        Discussion.objects(subject=dataset).delete()
        # Remove activity
        Activity.objects(related_to=dataset).delete()
        # Remove topics' related dataset
        for topic in Topic.objects(datasets=dataset):
            datasets = topic.datasets
            datasets.remove(dataset)
            topic.update(datasets=datasets)
        # Remove HarvestItem references
        HarvestJob.objects(items__dataset=dataset).update(
            set__items__S__dataset=None)
        # Remove associated Transfers
        Transfer.objects(subject=dataset).delete()
        # Remove each dataset's resource's file
        storage = storages.resources
        for resource in dataset.resources:
            if resource.fs_filename is not None:
                storage.delete(resource.fs_filename)
            # Not removing the resource from dataset.resources
            # with `dataset.remove_resource` as removing elements
            # from a list while iterating causes random effects.
            Dataset.on_resource_removed.send(Dataset,
                                             document=dataset,
                                             resource_id=resource.id)
        # Remove each dataset related community resource and it's file
        community_resources = CommunityResource.objects(dataset=dataset)
        for community_resource in community_resources:
            if community_resource.fs_filename is not None:
                storage.delete(community_resource.fs_filename)
            community_resource.delete()
        # Remove dataset
        dataset.delete()
예제 #11
0
def store_featured_topics():
    g.featured_topics = sorted(Topic.objects(featured=True),
                               key=lambda t: t.slug)
예제 #12
0
파일: views.py 프로젝트: javanna2000/udata
def store_featured_topics():
    g.featured_topics = sorted(Topic.objects(featured=True),
                               key=lambda t: t.slug)