Compare commits

...

3 Commits

Author SHA1 Message Date
R. Miles McCain
c524325f0a Bump version to v0.6.5 2020-08-28 17:20:16 +00:00
R. Miles McCain
4a07ab80ce Prevent multiple emails from pointing to same collaborator (fixes #78) 2020-08-28 17:19:57 +00:00
R. Miles McCain
c8dead4457 Prevent services from showing up twice on homepage 2020-08-28 17:19:07 +00:00
3 changed files with 7 additions and 2 deletions

View File

@@ -60,6 +60,7 @@ class ServiceForm(forms.ModelForm):
def clean_collaborators(self):
collaborators = []
users_to_emails = {} # maps users to the email they are listed under as a collaborator
for collaborator_email in self.cleaned_data["collaborators"].split(","):
email = collaborator_email.strip()
if email == "":
@@ -69,6 +70,10 @@ class ServiceForm(forms.ModelForm):
).first()
if collaborator_email_linked is None:
raise forms.ValidationError(f"Email '{email}' is not registered")
user = collaborator_email_linked.user
if user in collaborators:
raise forms.ValidationError(f"The emails '{email}' and '{users_to_emails[user]}' both correspond to the same user")
users_to_emails[user] = email
collaborators.append(collaborator_email_linked.user)
return collaborators

View File

@@ -29,7 +29,7 @@ class DashboardView(LoginRequiredMixin, DateRangeMixin, TemplateView):
data = super().get_context_data(**kwargs)
data["services"] = Service.objects.filter(
Q(owner=self.request.user) | Q(collaborators__in=[self.request.user])
)
).distinct()
for service in data["services"]:
service.stats = service.get_core_stats(data["start_date"], data["end_date"])
return data

View File

@@ -18,7 +18,7 @@ import urllib.parse as urlparse
from django.contrib.messages import constants as messages
# Increment on new releases
VERSION = "v0.6.4"
VERSION = "v0.6.5"
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))