# -*- coding: utf-8 -*- from __future__ import unicode_literals, absolute_import from udata import mail from udata.i18n import lazy_gettext as _ from udata.models import Dataset, Reuse from udata.tasks import task, get_logger from .signals import on_new_issue, on_new_issue_comment, on_issue_closed log = get_logger(__name__) def connect(signal): def wrapper(func): t = task(func) def call_task(issue, **kwargs): t.delay(issue, **kwargs) signal.connect(call_task, weak=False) return t return wrapper def owner_recipients(issue): if issue.subject.organization: return [m.user for m in issue.subject.organization.members] else: return [issue.subject.owner]
# -*- coding: utf-8 -*- from __future__ import unicode_literals from udata import mail from udata.i18n import lazy_gettext as _ from udata.models import Organization, FollowOrg, Activity, Metrics from udata.tasks import job, task, get_logger log = get_logger(__name__) @job('purge-organizations') def purge_organizations(self): for organization in Organization.objects(deleted__ne=None): log.info('Purging organization "{0}"'.format(organization)) # Remove followers FollowOrg.objects(following=organization).delete() # Remove activity Activity.objects(related_to=organization).delete() Activity.objects(organization=organization).delete() # Remove metrics Metrics.objects(object_id=organization.id).delete() # Remove organization.delete() @task def notify_membership_request(org, request): recipients = [m.user for m in org.by_role('admin')] mail.send( _('New membership request'), recipients, 'membership_request',