コード例 #1
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def send_frequency_reminder(self):
    # We exclude irrelevant frequencies.
    frequencies = [f for f in UPDATE_FREQUENCIES.keys()
                   if f not in ('unknown', 'realtime', 'punctual')]
    now = datetime.now()
    reminded_orgs = {}
    reminded_people = []
    allowed_delay = current_app.config['DELAY_BEFORE_REMINDER_NOTIFICATION']
    for org in Organization.objects.visible():
        outdated_datasets = []
        for dataset in Dataset.objects.filter(
                frequency__in=frequencies, organization=org).visible():
            if dataset.next_update + timedelta(days=allowed_delay) < now:
                dataset.outdated = now - dataset.next_update
                dataset.frequency_str = UPDATE_FREQUENCIES[dataset.frequency]
                outdated_datasets.append(dataset)
        if outdated_datasets:
            reminded_orgs[org] = outdated_datasets
    for reminded_org, datasets in reminded_orgs.iteritems():
        print(u'{org.name} will be emailed for {datasets_nb} datasets'.format(
              org=reminded_org, datasets_nb=len(datasets)))
        recipients = [m.user for m in reminded_org.members]
        reminded_people.append(recipients)
        subject = _('You need to update some frequency-based datasets')
        mail.send(subject, recipients, 'frequency_reminder',
                  org=reminded_org, datasets=datasets)

    print('{nb_orgs} orgs concerned'.format(nb_orgs=len(reminded_orgs)))
    reminded_people = flatten(reminded_people)
    print('{nb_emails} people contacted ({nb_emails_twice} twice)'.format(
        nb_emails=len(reminded_people),
        nb_emails_twice=len(reminded_people) - len(Set(reminded_people))))
    print('Done')
コード例 #2
0
def contact():
    form = ContactForm()
    if request.method == 'POST':
        if form.validate_on_submit() == False:
            for field, errors in form.errors.items():
                for error in errors:
                    do_flash(i18n.gettext(error), 'danger')
        else:
            msg = Message(
                form.subject.data,
                sender=current_app.config.get('MAIL_DEFAULT_SENDER'),
                recipients=[current_app.config.get('MAIL_DEFAULT_RECEIVER')])
            msg.body = """
            From: %s <%s>
            %s
            """ % (form.name.data, form.email.data, form.message.data)
            try:
                mail = current_app.extensions.get('mail')
                mail.send(msg)
            except Exception, e:
                do_flash("Server Error : " + str(e), 'danger')
            else:
                do_flash(
                    i18n.gettext(
                        u"Thank you for your message. We'll get back to you shortly."
                    ), 'success')
コード例 #3
0
 def mark_as_deleted(self):
     copied_user = copy(self)
     self.email = '{}@deleted'.format(self.id)
     self.password = None
     self.active = False
     self.first_name = 'DELETED'
     self.last_name = 'DELETED'
     self.avatar = None
     self.avatar_url = None
     self.website = None
     self.about = None
     self.deleted = datetime.now()
     self.save()
     for organization in self.organizations:
         organization.members = [
             member for member in organization.members
             if member.user != self
         ]
         organization.save()
     for discussion in Discussion.objects(discussion__posted_by=self):
         for message in discussion.discussion:
             if message.posted_by == self:
                 message.content = 'DELETED'
         discussion.save()
     Follow.objects(follower=self).delete()
     Follow.objects(following=self).delete()
     mail.send(_('Account deletion'), copied_user, 'account_deleted')
コード例 #4
0
ファイル: models.py プロジェクト: odtvince/udata
 def mark_as_deleted(self):
     copied_user = copy(self)
     self.email = '{}@deleted'.format(self.id)
     self.password = None
     self.active = False
     self.first_name = 'DELETED'
     self.last_name = 'DELETED'
     self.avatar = None
     self.avatar_url = None
     self.website = None
     self.about = None
     self.extras = None
     self.deleted = datetime.now()
     self.save()
     for organization in self.organizations:
         organization.members = [member
                                 for member in organization.members
                                 if member.user != self]
         organization.save()
     for discussion in Discussion.objects(discussion__posted_by=self):
         for message in discussion.discussion:
             if message.posted_by == self:
                 message.content = 'DELETED'
         discussion.save()
     Follow.objects(follower=self).delete()
     Follow.objects(following=self).delete()
     mail.send(_('Account deletion'), copied_user, 'account_deleted')
コード例 #5
0
ファイル: tasks.py プロジェクト: grouan/udata
def notify_membership_request(org, request):
    recipients = [m.user for m in org.by_role('admin')]
    mail.send(_('New membership request'),
              recipients,
              'membership_request',
              org=org,
              request=request)
コード例 #6
0
ファイル: tasks.py プロジェクト: guillo-w/udata
def notify_new_issue(issue):
    if isinstance(issue.subject, (Dataset, Reuse)):
        recipients = owner_recipients(issue)
        subject = _('Your %(type)s have a new issue', type=issue.subject.verbose_name)
        mail.send(subject, recipients, 'new_issue', issue=issue)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #7
0
def send_frequency_reminder(self):
    # We exclude irrelevant frequencies.
    frequencies = [f for f in UPDATE_FREQUENCIES.keys()
                   if f not in ('unknown', 'realtime', 'punctual')]
    now = datetime.now()
    reminded_orgs = {}
    reminded_people = []
    allowed_delay = current_app.config['DELAY_BEFORE_REMINDER_NOTIFICATION']
    for org in Organization.objects.visible():
        outdated_datasets = []
        for dataset in Dataset.objects.filter(
                frequency__in=frequencies, organization=org).visible():
            if dataset.next_update + timedelta(days=allowed_delay) < now:
                dataset.outdated = now - dataset.next_update
                dataset.frequency_str = UPDATE_FREQUENCIES[dataset.frequency]
                outdated_datasets.append(dataset)
        if outdated_datasets:
            reminded_orgs[org] = outdated_datasets
    for reminded_org, datasets in reminded_orgs.iteritems():
        print('{org.name} will be emailed for {datasets_nb} datasets'.format(
              org=reminded_org, datasets_nb=len(datasets)))
        recipients = [m.user for m in reminded_org.members]
        reminded_people.append(recipients)
        subject = _('You need to update some frequency-based datasets')
        mail.send(subject, recipients, 'frequency_reminder',
                  org=reminded_org, datasets=datasets)

    print('{nb_orgs} orgs concerned'.format(nb_orgs=len(reminded_orgs)))
    reminded_people = flatten(reminded_people)
    print('{nb_emails} people contacted ({nb_emails_twice} twice)'.format(
        nb_emails=len(reminded_people),
        nb_emails_twice=len(reminded_people) - len(Set(reminded_people))))
    print('Done')
コード例 #8
0
ファイル: tasks.py プロジェクト: ldolberg/udata
def notify_membership_response(org, request):
    if request.status == "accepted":
        subject = _('You are now a member of the organization "%(org)s"', org=org)
        template = "new_member"
    else:
        subject, template = _("Membership refused"), "membership_refused"
    mail.send(subject, request.user, template, org=org, request=request)
コード例 #9
0
ファイル: tasks.py プロジェクト: augusto-herrmann/udata
def notify_membership_request(org_id, request_id):
    if isinstance(org_id,
                  Organization):  # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Using documents as task parameter is deprecated and '
            'will be removed in udata 2.0', DeprecationWarning)
        org = org_id
    else:
        org = Organization.objects.get(pk=org_id)

    if isinstance(request_id,
                  MembershipRequest):  # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Using documents as task parameter is deprecated and '
            'will be removed in udata 2.0', DeprecationWarning)
        request = request_id
    else:
        request = next((r for r in org.requests if str(r.id) == request_id),
                       None)

    recipients = [m.user for m in org.by_role('admin')]
    mail.send(_('New membership request'),
              recipients,
              'membership_request',
              org=org,
              request=request)
コード例 #10
0
ファイル: tasks.py プロジェクト: augusto-herrmann/udata
def notify_membership_response(org_id, request_id):
    if isinstance(org_id,
                  Organization):  # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Using documents as task parameter is deprecated and '
            'will be removed in udata 2.0', DeprecationWarning)
        org = org_id
    else:
        org = Organization.objects.get(pk=org_id)

    if isinstance(request_id,
                  MembershipRequest):  # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Using documents as task parameter is deprecated and '
            'will be removed in udata 2.0', DeprecationWarning)
        request = request_id
    else:
        request = next((r for r in org.requests if str(r.id) == request_id),
                       None)

    if request.status == 'accepted':
        subject = _('You are now a member of the organization "%(org)s"',
                    org=org)
        template = 'new_member'
    else:
        subject, template = _('Membership refused'), 'membership_refused'
    mail.send(subject, request.user, template, org=org, request=request)
コード例 #11
0
ファイル: tasks.py プロジェクト: grouan/udata
def notify_membership_response(org, request):
    if request.status == 'accepted':
        subject, template = _(
            'You are now a member of the organization "%(org)s"', org=org),
        'new_member'
    else:
        subject, template = _('Membership refused'), 'membership_refused'
    mail.send(subject, request.user, template, org=org, request=request)
コード例 #12
0
def notify_new_issue(issue):
    if isinstance(issue.subject, (Dataset, Reuse)):
        recipients = owner_recipients(issue)
        subject = _('Your %(type)s have a new issue',
                    type=issue.subject.verbose_name)
        mail.send(subject, recipients, 'new_issue', issue=issue)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #13
0
ファイル: tasks.py プロジェクト: grouan/udata
def notify_membership_response(org, request):
    if request.status == 'accepted':
        subject, template = _(
            'You are now a member of the organization "%(org)s"', org=org),
        'new_member'
    else:
        subject, template = _('Membership refused'), 'membership_refused'
    mail.send(subject, request.user, template, org=org, request=request)
コード例 #14
0
def notify_membership_request(org_id, request_id):
    org = Organization.objects.get(pk=org_id)
    request = next((r for r in org.requests if str(r.id) == request_id), None)

    recipients = [m.user for m in org.by_role('admin')]
    mail.send(
        _('New membership request'), recipients, 'membership_request',
        org=org, request=request)
コード例 #15
0
def notify_badge_added(badge):
    if isinstance(badge.subject, Organization):
        recipients = owner_recipients(badge)
        subject = _('Your %(type)s gain a new badge',
                    type=badge.subject.verbose_name)
        mail.send(subject, recipients, 'badge_added', badge=badge)
    else:
        log.warning('Unrecognized badge subject type %s', type(badge.subject))
コード例 #16
0
ファイル: tasks.py プロジェクト: guillo-w/udata
def notify_issue_closed(issue, **kwargs):
    if isinstance(issue.subject, (Dataset, Reuse)):
        comment = kwargs['message']
        recipients = owner_recipients(issue) + [m.posted_by for m in issue.discussion]
        recipients = filter(lambda u: u != comment.posted_by, set(recipients))
        subject = _('An issue has been closed')
        mail.send(subject, recipients, 'issue_closed', issue=issue, comment=comment)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #17
0
def notify_new_discussion(discussion):
    if isinstance(discussion.subject, (Dataset, Reuse, Post)):
        recipients = owner_recipients(discussion)
        subject = _('Your %(type)s have a new discussion',
                    type=discussion.subject.verbose_name)
        mail.send(subject, recipients, 'new_discussion', discussion=discussion)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #18
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def notify_new_discussion(discussion):
    if isinstance(discussion.subject, (Dataset, Reuse)):
        recipients = owner_recipients(discussion)
        subject = _('Your %(type)s have a new discussion',
                    type=discussion.subject.verbose_name)
        mail.send(subject, recipients, 'new_discussion', discussion=discussion)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #19
0
ファイル: tasks.py プロジェクト: guillo-w/udata
def notify_new_issue_comment(issue, **kwargs):
    if isinstance(issue.subject, (Dataset, Reuse)):
        comment = kwargs['message']
        recipients = owner_recipients(issue) + [m.posted_by for m in issue.discussion]
        recipients = filter(lambda u: u != comment.posted_by, set(recipients))
        subject = _('%(user)s commented your issue', user=comment.posted_by.fullname)
        mail.send(subject, recipients, 'new_issue_comment', issue=issue, comment=comment)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #20
0
ファイル: tasks.py プロジェクト: rfResearch/udata
def notify_new_issue(issue_id):
    issue = Issue.objects.get(pk=issue_id)
    if isinstance(issue.subject, (Dataset, Reuse)):
        recipients = owner_recipients(issue)
        subject = _('Your %(type)s have a new issue',
                    type=issue.subject.verbose_name)
        mail.send(subject, recipients, 'new_issue', issue=issue,
                  message=issue.discussion[0])
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #21
0
ファイル: tasks.py プロジェクト: opendatateam/udata
def notify_membership_response(org_id, request_id):
    org = Organization.objects.get(pk=org_id)
    request = next((r for r in org.requests if str(r.id) == request_id), None)

    if request.status == 'accepted':
        subject = _('You are now a member of the organization "%(org)s"',
                    org=org)
        template = 'new_member'
    else:
        subject, template = _('Membership refused'), 'membership_refused'
    mail.send(subject, request.user, template, org=org, request=request)
コード例 #22
0
ファイル: tasks.py プロジェクト: odtvince/udata
def notify_issue_closed(issue, **kwargs):
    if isinstance(issue.subject, (Dataset, Reuse)):
        message = kwargs['message']
        recipients = owner_recipients(issue) + [
            m.posted_by for m in issue.discussion]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('An issue has been closed')
        mail.send(subject, recipients, 'issue_closed',
                  issue=issue, message=message)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #23
0
ファイル: tasks.py プロジェクト: odtvince/udata
def notify_new_reuse(reuse):
    for dataset in reuse.datasets:
        if dataset.organization:
            recipients = [m.user for m in dataset.organization.members]
        elif dataset.owner:
            recipients = dataset.owner
        else:
            recipients = None
        if recipients:
            mail.send(_('New reuse'), recipients, 'new_reuse', reuse=reuse,
                      dataset=dataset)
コード例 #24
0
ファイル: tasks.py プロジェクト: rfResearch/udata
def notify_issue_closed(issue_id, message=None):
    issue = Issue.objects.get(pk=issue_id)
    message = issue.discussion[message]
    if isinstance(issue.subject, (Dataset, Reuse)):
        recipients = owner_recipients(issue) + [
            m.posted_by for m in issue.discussion]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('An issue has been closed')
        mail.send(subject, recipients, 'issue_closed',
                  issue=issue, message=message)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #25
0
def notify_discussion_closed(discussion, **kwargs):
    if isinstance(discussion.subject, (Dataset, Reuse)):
        comment = kwargs['message']
        recipients = owner_recipients(discussion) + [
            m.posted_by for m in discussion.discussion]
        recipients = filter(lambda u: u != comment.posted_by, set(recipients))
        subject = _('A discussion has been closed')
        mail.send(subject, recipients, 'discussion_closed',
                  discussion=discussion, comment=comment)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #26
0
ファイル: tasks.py プロジェクト: guillo-w/udata
def notify_new_follower(follow):
    if isinstance(follow.following, User):
        subject =_('%(user)s followed you', user=follow.follower)
        mail.send(subject, follow.following, 'new_follower', follow=follow)
    elif isinstance(follow.following, Organization):
        subject = _('%(user)s followed your organization', user=follow.follower)
        recipients = [m.user for m in follow.following.members]
        mail.send(subject, recipients, 'new_follower_org', follow=follow)
    elif isinstance(follow.following, Dataset):
        pass
    elif isinstance(follow.following, Reuse):
        pass
コード例 #27
0
ファイル: tasks.py プロジェクト: odtvince/udata
def notify_new_issue_comment(issue, **kwargs):
    if isinstance(issue.subject, (Dataset, Reuse)):
        message = kwargs['message']
        recipients = owner_recipients(issue) + [
            m.posted_by for m in issue.discussion]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('%(user)s commented your issue',
                    user=message.posted_by.fullname)
        mail.send(subject, recipients, 'new_issue_comment',
                  issue=issue, message=message)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #28
0
ファイル: tasks.py プロジェクト: odtvince/udata
def notify_discussion_closed(discussion, **kwargs):
    if isinstance(discussion.subject, (Dataset, Reuse, Post)):
        message = kwargs['message']
        recipients = owner_recipients(discussion) + [
            m.posted_by for m in discussion.discussion]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('A discussion has been closed')
        mail.send(subject, recipients, 'discussion_closed',
                  discussion=discussion, message=message)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #29
0
ファイル: tasks.py プロジェクト: rfResearch/udata
def notify_new_issue_comment(issue_id, message=None):
    issue = Issue.objects.get(pk=issue_id)
    message = issue.discussion[message]
    if isinstance(issue.subject, (Dataset, Reuse)):
        recipients = owner_recipients(issue) + [
            m.posted_by for m in issue.discussion]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('%(user)s commented your issue',
                    user=message.posted_by.fullname)
        mail.send(subject, recipients, 'new_issue_comment',
                  issue=issue, message=message)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #30
0
def notify_new_discussion_comment(discussion, **kwargs):
    if isinstance(discussion.subject, (Dataset, Reuse)):
        comment = kwargs['message']
        recipients = owner_recipients(discussion) + [
            m.posted_by for m in discussion.discussion]
        recipients = filter(lambda u: u != comment.posted_by, set(recipients))
        subject = _('%(user)s commented your discussion',
                    user=comment.posted_by.fullname)
        mail.send(subject, recipients, 'new_discussion_comment',
                  discussion=discussion, comment=comment)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #31
0
ファイル: tasks.py プロジェクト: odtvince/udata
def notify_new_discussion_comment(discussion, **kwargs):
    if isinstance(discussion.subject, (Dataset, Reuse, Post)):
        message = kwargs['message']
        recipients = owner_recipients(discussion) + [
            m.posted_by for m in discussion.discussion]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('%(user)s commented your discussion',
                    user=message.posted_by.fullname)
        mail.send(subject, recipients, 'new_discussion_comment',
                  discussion=discussion, message=message)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #32
0
ファイル: tasks.py プロジェクト: opendatateam/udata
def notify_badge_certified(org_id):
    '''
    Send an email when a `CERTIFIED` badge is added to an `Organization`
    '''
    org = Organization.objects.get(pk=org_id)
    recipients = [member.user for member in org.members]
    subject = _('Your organization "%(name)s" has been certified',
                name=org.name)
    mail.send(subject,
              recipients,
              'badge_added_certified',
              organization=org,
              badge=org.get_badge(CERTIFIED))
コード例 #33
0
ファイル: tasks.py プロジェクト: mayjolux/udata
def notify_new_follower(follow):
    if isinstance(follow.following, User):
        subject = _('%(user)s followed you', user=follow.follower)
        mail.send(subject, follow.following, 'new_follower', follow=follow)
    elif isinstance(follow.following, Organization):
        subject = _('%(user)s followed your organization',
                    user=follow.follower)
        recipients = [m.user for m in follow.following.members]
        mail.send(subject, recipients, 'new_follower_org', follow=follow)
    elif isinstance(follow.following, Dataset):
        pass
    elif isinstance(follow.following, Reuse):
        pass
コード例 #34
0
ファイル: tasks.py プロジェクト: opendatateam/udata
def notify_badge_public_service(org_id):
    '''
    Send an email when a `PUBLIC_SERVICE` badge is added to an `Organization`
    '''
    org = Organization.objects.get(pk=org_id)
    recipients = [member.user for member in org.members]
    subject = _(
        'Your organization "%(name)s" has been identified as public service',
        name=org.name)
    mail.send(subject,
              recipients,
              'badge_added_public_service',
              organization=org,
              badge=org.get_badge(PUBLIC_SERVICE))
コード例 #35
0
def notify_new_reuse(reuse):
    for dataset in reuse.datasets:
        if dataset.organization:
            recipients = [m.user for m in dataset.organization.members]
        elif dataset.owner:
            recipients = dataset.owner
        else:
            recipients = None
        if recipients:
            mail.send(_('New reuse'),
                      recipients,
                      'new_reuse',
                      reuse=reuse,
                      dataset=dataset)
コード例 #36
0
def notify_issue_closed(issue, **kwargs):
    if isinstance(issue.subject, (Dataset, Reuse)):
        comment = kwargs['message']
        recipients = owner_recipients(issue) + [
            m.posted_by for m in issue.discussion
        ]
        recipients = filter(lambda u: u != comment.posted_by, set(recipients))
        subject = _('An issue has been closed')
        mail.send(subject,
                  recipients,
                  'issue_closed',
                  issue=issue,
                  comment=comment)
    else:
        log.warning('Unrecognized issue subject type %s', type(issue.subject))
コード例 #37
0
def notify_discussion_closed(discussion, **kwargs):
    if isinstance(discussion.subject, (Dataset, Reuse, Post)):
        message = kwargs['message']
        recipients = owner_recipients(discussion) + [
            m.posted_by for m in discussion.discussion
        ]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('A discussion has been closed')
        mail.send(subject,
                  recipients,
                  'discussion_closed',
                  discussion=discussion,
                  message=message)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #38
0
def notify_new_discussion_comment(discussion, **kwargs):
    if isinstance(discussion.subject, (Dataset, Reuse, Post)):
        message = kwargs['message']
        recipients = owner_recipients(discussion) + [
            m.posted_by for m in discussion.discussion
        ]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('%(user)s commented your discussion',
                    user=message.posted_by.fullname)
        mail.send(subject,
                  recipients,
                  'new_discussion_comment',
                  discussion=discussion,
                  message=message)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #39
0
ファイル: tasks.py プロジェクト: rfResearch/udata
def notify_discussion_closed(discussion_id, message=None):
    discussion = Discussion.objects.get(pk=discussion_id)
    message = discussion.discussion[message]
    if isinstance(discussion.subject, (Dataset, Reuse, Post)):
        recipients = owner_recipients(discussion) + [
            m.posted_by for m in discussion.discussion
        ]
        recipients = [u for u in set(recipients) if u != message.posted_by]
        subject = _('A discussion has been closed')
        mail.send(subject,
                  recipients,
                  'discussion_closed',
                  discussion=discussion,
                  message=message)
    else:
        log.warning('Unrecognized discussion subject type %s',
                    type(discussion.subject))
コード例 #40
0
ファイル: tasks.py プロジェクト: mayjolux/udata
def notify_badge_added_certified(sender, kind=''):
    '''
    Send an email when a `CERTIFIED` badge is added to an `Organization`

    Parameters
    ----------
    sender
        The object that emitted the event.
    kind: str
        The kind of `Badge` object awarded.
    '''
    if kind == CERTIFIED and isinstance(sender, Organization):
        recipients = [member.user for member in sender.members]
        subject = _('Your organization "%(name)s" has been certified',
                    name=sender.name)
        mail.send(subject,
                  recipients,
                  'badge_added_certified',
                  organization=sender,
                  badge=sender.get_badge(kind))
コード例 #41
0
ファイル: tasks.py プロジェクト: augusto-herrmann/udata
def notify_new_member(org_id, email):
    if isinstance(org_id,
                  Organization):  # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Using documents as task parameter is deprecated and '
            'will be removed in udata 2.0', DeprecationWarning)
        org = org_id
    else:
        org = Organization.objects.get(pk=org_id)

    if isinstance(email, Member):  # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Using documents as task parameter is deprecated and '
            'will be removed in udata 2.0', DeprecationWarning)
        member = email
    else:
        member = next((m for m in org.members if m.user.email == email), None)

    subject = _('You are now a member of the organization "%(org)s"', org=org)
    mail.send(subject, member.user, 'new_member', org=org)
コード例 #42
0
ファイル: tasks.py プロジェクト: mayjolux/udata
def notify_badge_added_public_service(sender, kind=''):
    '''
    Send an email when a `PUBLIC_SERVICE` badge is added to an `Organization`

    Parameters
    ----------
    sender
        The object that emitted the event.
    kind: str
        The kind of `Badge` object awarded.
    '''
    if kind == PUBLIC_SERVICE and isinstance(sender, Organization):
        recipients = [member.user for member in sender.members]
        subject = _(
            'Your organization "%(name)s" has been identified as public service',
            name=sender.name)
        mail.send(subject,
                  recipients,
                  'badge_added_public_service',
                  organization=sender,
                  badge=sender.get_badge(kind))
コード例 #43
0
def notify_new_follower(follow_id):
    if isinstance(follow_id, Follow):  # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Using documents as task parameter is deprecated and '
            'will be removed in udata 2.0', DeprecationWarning)
        follow = follow_id
    else:
        follow = Follow.objects.get(pk=follow_id)

    if isinstance(follow.following, User):
        subject = _('%(user)s followed you', user=follow.follower)
        mail.send(subject, follow.following, 'new_follower', follow=follow)
    elif isinstance(follow.following, Organization):
        subject = _('%(user)s followed your organization',
                    user=follow.follower)
        recipients = [m.user for m in follow.following.members]
        mail.send(subject, recipients, 'new_follower_org', follow=follow)
    elif isinstance(follow.following, Dataset):
        pass
    elif isinstance(follow.following, Reuse):
        pass
コード例 #44
0
def notify_new_reuse(reuse_id):
    if isinstance(reuse_id, Reuse):
        # TODO: Remove this branch in udata 2.0
        warnings.warn(
            'Reuse as task parameter is deprecated and '
            'will be removed in udata 2.0',
            DeprecationWarning
        )
        reuse = reuse_id
    else:
        reuse = Reuse.objects.get(pk=reuse_id)
    for dataset in reuse.datasets:
        if dataset.organization:
            recipients = [m.user for m in dataset.organization.members]
        elif dataset.owner:
            recipients = dataset.owner
        else:
            recipients = None
        if recipients:
            mail.send(_('New reuse'), recipients, 'new_reuse', reuse=reuse,
                      dataset=dataset)
コード例 #45
0
ファイル: tasks.py プロジェクト: odtvince/udata
def notify_badge_added_certified(sender, kind=''):
    '''
    Send an email when a `CERTIFIED` badge is added to an `Organization`

    Parameters
    ----------
    sender
        The object that emitted the event.
    kind: str
        The kind of `Badge` object awarded.
    '''
    if kind == CERTIFIED and isinstance(sender, Organization):
        recipients = [member.user for member in sender.members]
        subject = _(
            'Your organization "%(name)s" has been certified',
            name=sender.name
        )
        mail.send(
            subject,
            recipients,
            'badge_added_certified',
            organization=sender,
            badge=sender.get_badge(kind)
        )
コード例 #46
0
ファイル: tasks.py プロジェクト: odtvince/udata
def notify_badge_added_public_service(sender, kind=''):
    '''
    Send an email when a `PUBLIC_SERVICE` badge is added to an `Organization`

    Parameters
    ----------
    sender
        The object that emitted the event.
    kind: str
        The kind of `Badge` object awarded.
    '''
    if kind == PUBLIC_SERVICE and isinstance(sender, Organization):
        recipients = [member.user for member in sender.members]
        subject = _(
            'Your organization "%(name)s" has been identified as public service',
            name=sender.name
        )
        mail.send(
            subject,
            recipients,
            'badge_added_public_service',
            organization=sender,
            badge=sender.get_badge(kind)
        )
コード例 #47
0
ファイル: tasks.py プロジェクト: ldolberg/udata
def notify_membership_request(org, request):
    recipients = [m.user for m in org.by_role("admin")]
    mail.send(_("New membership request"), recipients, "membership_request", org=org, request=request)
コード例 #48
0
ファイル: tasks.py プロジェクト: grouan/udata
def notify_new_member(org, member):
    subject = _('You are now a member of the organization "%(org)s"', org=org)
    mail.send(subject, member.user, 'new_member', org=org)
コード例 #49
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def send_test_mail(user):
    mail.send(_('Test mail'), user, 'test')
コード例 #50
0
ファイル: tasks.py プロジェクト: grouan/udata
def notify_membership_request(org, request):
    recipients = [m.user for m in org.by_role('admin')]
    mail.send(
        _('New membership request'), recipients, 'membership_request',
        org=org, request=request)