add reversion
authorJacob Hilker <hilker.j@gmail.com>
Sun, 2 Feb 2014 00:03:13 +0000 (19:03 -0500)
committerJacob Hilker <hilker.j@gmail.com>
Sun, 2 Feb 2014 00:03:13 +0000 (19:03 -0500)
karmaworld/apps/courses/models.py
karmaworld/apps/courses/views.py
karmaworld/assets/js/course-detail.js
karmaworld/settings/common.py
reqs/common.txt

index 7f12342a6c9f2cb814097ef053ed8b1df3466289..78761a82b23b041cf1c56f43f5d9565138a609e8 100644 (file)
@@ -9,6 +9,7 @@
     Courses have a manytoone relation to schools.
 """
 import datetime
+import reversion
 
 from django.db import models
 from django.utils.text import slugify
@@ -248,6 +249,7 @@ class Course(models.Model):
         """ return url based on school slug and self slug """
         return u"/{0}/{1}".format(self.school.slug, self.slug)
 
+    @reversion.create_revision()
     def save(self, *args, **kwargs):
         """ Save school and generate a slug if one doesn't exist """
         super(Course, self).save(*args, **kwargs) # generate a self.id
@@ -263,11 +265,13 @@ class Course(models.Model):
     def autocomplete_search_fields():
         return ("name__icontains",)
 
+    @reversion.create_revision()
     def update_note_count(self):
         """ Update self.file_count by summing the note_set """
         self.file_count = self.note_set.count()
         self.save()
 
+reversion.register(Course)
 
 class ProfessorTaughtManager(models.Manager):
     """ Handle restoring data. """
index 714047cecc1c1c07887c472334dce25485c79177..0e91be50b187eddf74088bb5f75d3977e670632d 100644 (file)
@@ -4,6 +4,7 @@
 """ Views for the KarmaNotes Courses app """
 
 import json
+import reversion
 
 from django.core import serializers
 from django.core.exceptions import MultipleObjectsReturned
@@ -201,6 +202,7 @@ def flag_course(request, pk):
     """Record that somebody has flagged a note."""
     return ajax_increment(Course, request, pk, FLAG_FIELD, process_course_flag_events)
 
+@reversion.create_revision()
 def edit_course(request, pk):
     """
     Saves the edited course content
index 9c1d089d0af0c09486ab877baf26b185d7f183d4..342338c4332d852c92024555b216a078340b2f89 100644 (file)
@@ -49,7 +49,13 @@ $(function() {
         }
       },
       error: function(resp) {
-        var json = JSON.parse(resp.responseText);
+        var json;
+        try {
+          json = JSON.parse(resp.responseText);
+        } catch(e) {
+          json = { message: 'Unknown Error' };
+        }
+
         var errors = json.errors;
 
         // Delete all errors that currently exist
index ba16684d45fc5a2c27c99621dd24dfe2e1f6a776..af0271e92b25178f75d4060f0c35572836f3a8ae 100644 (file)
@@ -227,6 +227,9 @@ THIRD_PARTY_APPS = (
     # Tagging https://github.com/yedpodtrzitko/django-taggit
     'taggit',
 
+    # Version control
+    'reversion',
+
     'allauth',
     'allauth.account',
     'allauth.socialaccount',
index f2715e76da7a24d57b364f8c44be67ab3357b6ff..24cc7b2ce8589e695d4fa5f721e552465cc48e60 100644 (file)
@@ -21,3 +21,4 @@ html2text
 django-allauth
 boto==2.6.0
 django-storages==1.1.4
+reversion