コード例 #1
0
# -*- 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]
コード例 #2
0
ファイル: tasks.py プロジェクト: grouan/udata
# -*- 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',