change proposal status when the submitter adds or updates a URL

This commit is contained in:
Thomas Steen Rasmussen 2018-06-26 23:37:20 +02:00
parent ea2bfc8498
commit 5493dbee47

View file

@ -720,11 +720,21 @@ class UrlCreateView(LoginRequiredMixin, CampViewMixin, EnsureWritableCampMixin,
Set the proposal FK before saving Set the proposal FK before saving
""" """
if hasattr(self, 'eventproposal') and self.eventproposal: if hasattr(self, 'eventproposal') and self.eventproposal:
# this URL belongs to an eventproposal
form.instance.eventproposal = self.eventproposal form.instance.eventproposal = self.eventproposal
url = form.save() url = form.save()
if self.eventproposal.proposal_status != models.SpeakerProposal.PROPOSAL_PENDING:
self.eventproposal.proposal_status = models.SpeakerProposal.PROPOSAL_PENDING
self.eventproposal.save()
messages.success(self.request, "Event Proposal is now pending review by the Content Team.")
else: else:
# this URL belongs to a speakerproposal
form.instance.speakerproposal = self.speakerproposal form.instance.speakerproposal = self.speakerproposal
url = form.save() url = form.save()
if self.speakerproposal.proposal_status != models.SpeakerProposal.PROPOSAL_PENDING:
self.speakerproposal.proposal_status = models.SpeakerProposal.PROPOSAL_PENDING
self.speakerproposal.save()
messages.success(self.request, "Proposal is now pending review by the Content Team.")
messages.success(self.request, "URL saved.") messages.success(self.request, "URL saved.")
@ -738,6 +748,30 @@ class UrlUpdateView(LoginRequiredMixin, CampViewMixin, EnsureWritableCampMixin,
fields = ['urltype', 'url'] fields = ['urltype', 'url']
pk_url_kwarg = 'url_uuid' pk_url_kwarg = 'url_uuid'
def form_valid(self, form):
"""
Set the proposal FK before saving
"""
if hasattr(self, 'eventproposal') and self.eventproposal:
# this URL belongs to a speakerproposal
url = form.save()
if self.eventproposal.proposal_status != models.SpeakerProposal.PROPOSAL_PENDING:
self.eventproposal.proposal_status = models.SpeakerProposal.PROPOSAL_PENDING
self.eventproposal.save()
messages.success(self.request, "%s is now pending review by the Content Team." % self.eventproposal.title)
else:
# this URL belongs to a speakerproposal
url = form.save()
if self.speakerproposal.proposal_status != models.SpeakerProposal.PROPOSAL_PENDING:
self.speakerproposal.proposal_status = models.SpeakerProposal.PROPOSAL_PENDING
self.speakerproposal.save()
messages.success(self.request, "%s is now pending review by the Content Team." % self.speakerproposal.name)
messages.success(self.request, "URL saved.")
# all good
return redirect(self.get_success_url())
class UrlDeleteView(LoginRequiredMixin, CampViewMixin, EnsureWritableCampMixin, EnsureCFPOpenMixin, UrlViewMixin, DeleteView): class UrlDeleteView(LoginRequiredMixin, CampViewMixin, EnsureWritableCampMixin, EnsureCFPOpenMixin, UrlViewMixin, DeleteView):
model = models.Url model = models.Url