From: Seth Woodworth Date: Wed, 17 Jul 2013 20:28:14 +0000 (-0400) Subject: MIGRATION add Note.draft and set it to True until user submits form, closes #142 X-Git-Tag: release-20150131~392 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=175c6902b31792aad3d2d6fda61e2a2671312db6;p=oweals%2Fkarmaworld.git MIGRATION add Note.draft and set it to True until user submits form, closes #142 --- diff --git a/karmaworld/apps/ajaxuploader/backends/local.py b/karmaworld/apps/ajaxuploader/backends/local.py index 0856082..c3090ec 100644 --- a/karmaworld/apps/ajaxuploader/backends/local.py +++ b/karmaworld/apps/ajaxuploader/backends/local.py @@ -35,6 +35,7 @@ class LocalUploadBackend(AbstractUploadBackend): self._dest.write(chunk) def upload(self, uploaded, filename, raw_data): + """ :raw_data: is 0/1 """ try: if raw_data: # File was uploaded via ajax, and is streaming in. @@ -64,6 +65,7 @@ class LocalUploadBackend(AbstractUploadBackend): note.name = filename note.note_file = os.path.join(self._dir, filename) note.course_id = request.GET['course_id'] + note.draft = True # Pending approval from user print "saving note" note.save() diff --git a/karmaworld/apps/courses/views.py b/karmaworld/apps/courses/views.py index ebad7b3..90c1759 100644 --- a/karmaworld/apps/courses/views.py +++ b/karmaworld/apps/courses/views.py @@ -60,6 +60,12 @@ class CourseDetailView(DetailView): model = Course context_object_name = u"course" # name passed to template + def get_context_data(self, **kwargs): + """ filter the Course.note_set to return no Drafts """ + kwargs = super(CourseDetailView, self).get_context_data() + kwargs['note_set'] = self.object.note_set.filter(draft=False) + return kwargs + class AboutView(TemplateView): """ Display the About page with the Schools leaderboard """ diff --git a/karmaworld/apps/notes/models.py b/karmaworld/apps/notes/models.py index 768fce7..2aa6600 100644 --- a/karmaworld/apps/notes/models.py +++ b/karmaworld/apps/notes/models.py @@ -71,6 +71,9 @@ class Note(models.Model): html = models.TextField(blank=True, null=True) text = models.TextField(blank=True, null=True) + # if True, NEVER show this file + draft = models.BooleanField(default=False) + class Meta: """ Sort files by most recent first """ diff --git a/karmaworld/apps/notes/views.py b/karmaworld/apps/notes/views.py index d4037e6..f0f9a29 100644 --- a/karmaworld/apps/notes/views.py +++ b/karmaworld/apps/notes/views.py @@ -86,6 +86,8 @@ class NoteSaveView(FormView, SingleObjectMixin): self.object.year = form.cleaned_data['year'] # use *arg expansion to pass tags a list of tags self.object.tags.add(*form.cleaned_data['tags']) + # User has submitted this form, so set the SHOW flag + self.object.draft = False self.object.save() return super(NoteSaveView, self).form_valid(form) diff --git a/karmaworld/templates/courses/course_detail.html b/karmaworld/templates/courses/course_detail.html index 947d50b..2a948da 100644 --- a/karmaworld/templates/courses/course_detail.html +++ b/karmaworld/templates/courses/course_detail.html @@ -113,7 +113,7 @@
- {% for note in course.note_set.all %} + {% for note in note_set %} {% include 'notes/note_list_entry.html' with note=note %} {% endfor %}