FIX: Minor code improvements

This commit is contained in:
2020-01-26 17:39:38 +00:00
parent 18f771d508
commit 196d3d3e1d
2 changed files with 11 additions and 5 deletions

View File

@@ -55,8 +55,13 @@ class Profile(AbstractUser):
def latest_events(self):
return self.event_mic.order_by('-start_date').select_related('person', 'organisation', 'venue', 'mic')
def users_awaiting_approval_count(self):
return self.filter(models.Q(is_approved=False)).count()
@classmethod
def admins(cls):
return Profile.objects.filter(email__in=[y for x in settings.ADMINS for y in x])
@classmethod
def users_awaiting_approval_count(cls):
return Profile.objects.filter(models.Q(is_approved=False)).count()
def __str__(self):
return self.name

View File

@@ -11,6 +11,7 @@ from django.conf import settings
from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.mail import EmailMessage, EmailMultiAlternatives
from django.template.loader import get_template
from django.urls import reverse
from django.utils import timezone
from registration.signals import user_activated
from premailer import Premailer
@@ -109,13 +110,13 @@ post_save.connect(on_revision_commit, sender=models.EventAuthorisation)
def send_admin_awaiting_approval_email(user, request, **kwargs):
# Bit more controlled than just emailing all superusers
for admin in models.Profile.objects.filter(email__in=[y for x in settings.ADMINS for y in x]):
for admin in models.Profile.admins():
# Check we've ever emailed them before and if so, if cooldown has passed.
if admin.last_emailed is None or admin.last_emailed + settings.EMAIL_COOLDOWN <= timezone.now():
context = {
'request': request,
'link_suffix': '/admin/RIGS/profile/?is_approved__exact=0',
'number_of_users': models.Profile.users_awaiting_approval_count(models.Profile.objects),
'link_suffix': reverse("admin:RIGS_profile_changelist") + '?is_approved__exact=0',
'number_of_users': models.Profile.users_awaiting_approval_count(),
'to_name': admin.first_name
}