src/cm/models.py
changeset 156 6d447220fd1e
parent 155 f436e2fef076
child 160 0c01050f9717
equal deleted inserted replaced
155:f436e2fef076 156:6d447220fd1e
       
     1 import re
     1 from cm.converters.pandoc_converters import \
     2 from cm.converters.pandoc_converters import \
     2     CHOICES_INPUT_FORMATS as CHOICES_INPUT_FORMATS_PANDOC, \
     3     CHOICES_INPUT_FORMATS as CHOICES_INPUT_FORMATS_PANDOC, \
     3     DEFAULT_INPUT_FORMAT as DEFAULT_INPUT_FORMAT_PANDOC, pandoc_convert
     4     DEFAULT_INPUT_FORMAT as DEFAULT_INPUT_FORMAT_PANDOC, pandoc_convert
     4 from cm.models_base import PermanentModel, KeyManager, Manager, KeyModel, AuthorModel
     5 from cm.models_base import PermanentModel, KeyManager, Manager, KeyModel, AuthorModel
     5 from cm.models_utils import *
     6 from cm.models_utils import *
   137 DEFAULT_INPUT_FORMAT = getattr(settings, 'DEFAULT_INPUT_FORMAT', DEFAULT_INPUT_FORMAT_PANDOC)
   138 DEFAULT_INPUT_FORMAT = getattr(settings, 'DEFAULT_INPUT_FORMAT', DEFAULT_INPUT_FORMAT_PANDOC)
   138 CHOICES_INPUT_FORMATS = getattr(settings, 'CHOICES_INPUT_FORMATS', CHOICES_INPUT_FORMATS_PANDOC)
   139 CHOICES_INPUT_FORMATS = getattr(settings, 'CHOICES_INPUT_FORMATS', CHOICES_INPUT_FORMATS_PANDOC)
   139 
   140 
   140 class TextVersionManager(KeyManager):
   141 class TextVersionManager(KeyManager):
   141 
   142 
   142     def save(self):
       
   143         self.content = re.sub(r'\r\n|\r|\n', '\n', self.content)
       
   144         super.save() 
       
   145             
       
   146     def duplicate(self, text_version, duplicate_comments=True):
   143     def duplicate(self, text_version, duplicate_comments=True):
   147         #import pdb;pdb.set_trace()
   144         #import pdb;pdb.set_trace()
   148         old_comment_set = set(text_version.comment_set.all())
   145         old_comment_set = set(text_version.comment_set.all())
   149         text_version.id = None
   146         text_version.id = None
   150         
   147         
   269         other_versions = TextVersion.objects.filter(text__exact=self.text).order_by('-created').filter(created__lt=self.created)
   266         other_versions = TextVersion.objects.filter(text__exact=self.text).order_by('-created').filter(created__lt=self.created)
   270         return other_versions[0] if other_versions else None
   267         return other_versions[0] if other_versions else None
   271 
   268 
   272     def get_version_number(self):
   269     def get_version_number(self):
   273         return TextVersion.objects.filter(text__exact=self.text).order_by('created').filter(created__lte=self.created).count()
   270         return TextVersion.objects.filter(text__exact=self.text).order_by('created').filter(created__lte=self.created).count()
       
   271 
       
   272     def save(self, force_insert=False, force_update=False):
       
   273         self.content = re.sub('\r\n|\r|\n', '\n', self.content)
       
   274         super(AuthorModel, self).save() 
   274     
   275     
   275 class CommentManager(Manager):
   276 class CommentManager(Manager):
   276     
   277     
   277     def duplicate(self, comment, text_version, reply_to=None, keep_dates=False):
   278     def duplicate(self, comment, text_version, reply_to=None, keep_dates=False):
   278         comment.id = None
   279         comment.id = None