MIGRATION add Note.draft and set it to True until user submits form, closes #142
authorSeth Woodworth <seth@sethish.com>
Wed, 17 Jul 2013 20:28:14 +0000 (16:28 -0400)
committerSeth Woodworth <seth@sethish.com>
Wed, 17 Jul 2013 20:28:14 +0000 (16:28 -0400)
karmaworld/apps/ajaxuploader/backends/local.py
karmaworld/apps/courses/views.py
karmaworld/apps/notes/models.py
karmaworld/apps/notes/views.py
karmaworld/templates/courses/course_detail.html

index 0856082cb0f07d842f446d9a277b1895e53dd6a4..c3090ec100a479e56f37d7defedc3f68b4e43453 100644 (file)
@@ -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()
 
index ebad7b35c54ebc8821e3193ebbae593bf215f24e..90c1759b6028a305aa0c4decbc9d9eb84cb6a8ac 100644 (file)
@@ -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 """
index 768fce704a08777a663a11c24dba0d67818e582e..2aa6600ccc1a9e752e8a67d7f9f88ea4cb0bee26 100644 (file)
@@ -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 """
index d4037e6068dc2b6f1ee713221306c031846ccfd7..f0f9a2983035bed6e3f47d56578d4a9df9731ca2 100644 (file)
@@ -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)
 
index 947d50b37662dba05d039fa7173e8670267c416a..2a948da06e22dabc9420e68e2bf3d538ab458f74 100644 (file)
       <div class="row">
         <div class="small-12 columns large-10 large-offset-1">
 
-          {% for note in course.note_set.all %}
+          {% for note in note_set %}
             {% include 'notes/note_list_entry.html' with note=note %}
           {% endfor %}
         </div>