Skip to content
Snippets Groups Projects
Commit 0ce3be9f authored by Brian Moe's avatar Brian Moe
Browse files

On create notification, only user's own contacts are now displayed.

parent 51038a81
No related branches found
No related tags found
No related merge requests found
...@@ -4,6 +4,27 @@ from models import Trigger, Contact ...@@ -4,6 +4,27 @@ from models import Trigger, Contact
from django.forms.models import modelformset_factory from django.forms.models import modelformset_factory
def triggerFormFactory(postdata=None, user=None):
class TF(forms.ModelForm):
class Meta:
model = Trigger
exclude = ['user', 'triggerType']
contacts = forms.ModelMultipleChoiceField(
queryset=Contact.objects.filter(user=user),
required=False
)
# XXX should probably override is_valid and check for
# truth of (atypes or labels)
# and set field error attributes appropriately.
if postdata is not None:
return TF(postdata)
else:
return TF()
class TriggerForm(forms.ModelForm): class TriggerForm(forms.ModelForm):
class Meta: class Meta:
model = Trigger model = Trigger
......
...@@ -10,7 +10,7 @@ from django.shortcuts import render_to_response ...@@ -10,7 +10,7 @@ from django.shortcuts import render_to_response
from gracedb.userprofile.models import Trigger, Contact from gracedb.userprofile.models import Trigger, Contact
from forms import TriggerForm, ContactForm from forms import ContactForm, triggerFormFactory
def index(request): def index(request):
triggers = Trigger.objects.filter(user=request.ligouser) triggers = Trigger.objects.filter(user=request.ligouser)
...@@ -24,7 +24,7 @@ def create(request): ...@@ -24,7 +24,7 @@ def create(request):
explanation = "" explanation = ""
message = "" message = ""
if request.method == "POST": if request.method == "POST":
form = TriggerForm(request.POST) form = triggerFormFactory(request.POST, user=request.ligouser)
if form.is_valid(): if form.is_valid():
# Create the Trigger # Create the Trigger
t = Trigger(user=request.ligouser) t = Trigger(user=request.ligouser)
...@@ -43,14 +43,18 @@ def create(request): ...@@ -43,14 +43,18 @@ def create(request):
t.save() t.save()
request.session['flash_msg'] = "Created: %s" % t.userlessDisplay() request.session['flash_msg'] = "Created: %s" % t.userlessDisplay()
return HttpResponseRedirect(reverse(index)) return HttpResponseRedirect(reverse(index))
# Data was bad # Data was bad
if not contacts: try:
message += "You must specify at least one contact. " if not contacts:
if not (labels or atypes): message += "You must specify at least one contact. "
message += "You need to indicate label(s) and/or analysis type(s)." if not (labels or atypes):
message += "You need to indicate label(s) and/or analysis type(s)."
except NameError:
# form is not valid, so labels, contacts and atypes were not set.
# hopefully, there are error messages in the form.
pass
else: else:
form = TriggerForm() form = triggerFormFactory(user=request.ligouser)
if message: if message:
request.session['flash_msg'] = message request.session['flash_msg'] = message
return render_to_response('profile/createNotification.html', return render_to_response('profile/createNotification.html',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment