def reset_email_group(suffix=SUFFIX):
    """Clear an regenerate the group members for this suffix."""
    group = _get_or_create_email_group(suffix)
    logger.info(f'Clearing group: {group}.')
    GroupMembership.objects.filter(group=group).delete()
    users = User.objects.filter(email__iendswith=suffix)
    for user in users:
        GroupMembership.add_to_group(member=user, group=group)
        logger.info(f'Added {user} to group {group}.')
def user_saved(sender, **kwargs):
    """Update email group membership on User save."""
    user = kwargs['instance']
    logger.info(f'User saved: {user}')
    group = _get_or_create_email_group(SUFFIX)
    if user.email.endswith(SUFFIX):
        try:
            GroupMembership.add_to_group(member=user, group=group)
        except IntegrityError:
            pass
        else:
            logger.info(f'Added {user} to group {group}.')
    else:
        GroupMembership.objects.filter(member=user, group=group).delete()
        logger.info(f'Removed {user} from group {group}.')
Beispiel #3
0
    def save(self, *args, **kwargs):
        if self.pk:
            old_officer = Officer.objects.get(pk=self.pk)
            if old_officer.position and old_officer.position.group and old_officer.user:
                gm = GroupMembership.objects.filter(member=old_officer.user, group=old_officer.position.group)[:1]
                if gm:
                    gm[0].delete()

        super(Officer, self).save(*args, **kwargs)
        officer = self

        if officer.position:
            if officer.position.group and officer.user:
                try:
                    GroupMembership.objects.get(member=officer.user, group=officer.position.group)
                except:
                    GroupMembership.add_to_group(member=officer.user, group=officer.position.group)

        return officer
Beispiel #4
0
    def save(self, *args, **kwargs):
        if self.pk:
            old_officer = Officer.objects.get(pk=self.pk)
            if old_officer.position and old_officer.position.group and old_officer.user:
                gm = GroupMembership.objects.filter(member=old_officer.user, group=old_officer.position.group)[:1]
                if gm:
                    gm[0].delete()

        super(Officer, self).save(*args, **kwargs)
        officer = self

        if officer.position:
            if officer.position.group and officer.user:
                try:
                    GroupMembership.objects.get(member=officer.user, group=officer.position.group)
                except:
                    GroupMembership.add_to_group(member=officer.user, group=officer.position.group)

        return officer
Beispiel #5
0
def subscribe_to_newsletter_interactive(request, group_slug):
    group = get_object_or_404(Group,
                              slug=group_slug,
                              allow_self_add=True,
                              status_detail='active')

    [groupmembership] = GroupMembership.objects.filter(
        group=group, member=request.user, status=True,
        status_detail='active')[:1] or [None]
    if not groupmembership:
        groupmembership = GroupMembership.add_to_group(group=group,
                                                       member=request.user)

    if groupmembership.subscribe_to_newsletter():
        messages.success(request, _('Successfully subscribed to Newsletters.'))

    return redirect(reverse('group.detail', kwargs={'group_slug': group_slug}))
Beispiel #6
0
def subscribe_to_newsletter_interactive(request, group_slug):
    group = get_object_or_404(Group, slug=group_slug,
                              allow_self_add=True,
                              status_detail='active')

    [groupmembership] = GroupMembership.objects.filter(
                        group=group,
                        member=request.user,
                        status=True,
                        status_detail='active')[:1] or [None]
    if not groupmembership:
        groupmembership = GroupMembership.add_to_group(group=group,
                                                       member=request.user)

    if groupmembership.subscribe_to_newsletter():
        messages.success(request, _('Successfully subscribed to Newsletters.'))

    return redirect(reverse('group.detail', kwargs={'group_slug': group_slug}))