def user_mutations(self, uri): filter_manager = SearchViewFilters() dataset = UsersMutationsDataset.by_uri(uri) if dataset.owner and dataset.owner != current_user: current_app.login_manager.unauthorized() response = make_response( template('search/dataset.html', mutation_types=Mutation.types, results=dataset.data.results, widgets=make_widgets(filter_manager), without_mutations=dataset.data.without_mutations, query=dataset.data.query, badly_formatted=dataset.data.badly_formatted, dataset=dataset)) return response
def remove_user_mutations(self, uri): dataset = UsersMutationsDataset.by_uri(uri) name = dataset.name if not dataset.owner or dataset.owner != current_user: current_app.login_manager.unauthorized() try: dataset.remove() except Exception as e: message = 'Failed to remove dataset <b>%s</b> (%s).' % (name, uri) print(message, e) message += '<br>If the message reappears, please contact us.' flash(message, category='danger') raise abort(500) flash('Successfully removed <b>%s</b> dataset.' % name, category='success') return redirect(url_for('ContentManagementSystem:my_datasets'))
def test_init(self): user = User('user@domain', 'password') dataset = create_test_dataset(owner=user) assert user.datasets == [dataset] public_id = dataset.uri d = UsersMutationsDataset.query.filter_by(uri=public_id).one() assert d == dataset assert UsersMutationsDataset.by_uri(public_id) == dataset assert dataset.data assert dataset.query_size == 3 # should be empty as no mutations where imported assert not dataset.mutations assert dataset.name == 'test' assert dataset.life_expectancy < timedelta(days=7) assert not dataset.is_expired update(dataset, store_until=utc_now()) db.session.commit() time.sleep(2) assert dataset.is_expired d = UsersMutationsDataset.query.filter_by(is_expired=True).one() assert d == dataset u = User.query.filter_by(email='user@domain').one() assert u.datasets == []