Browse Source

Closes #100: Temporary fix to correctly list revisions of content

Bastien Sevajol (Algoo) 8 years ago
parent
commit
5c27e694a7
1 changed files with 13 additions and 3 deletions
  1. 13 3
      tracim/tracim/model/data.py

+ 13 - 3
tracim/tracim/model/data.py View File

@@ -1007,6 +1007,16 @@ class Content(DeclarativeBase):
1007 1007
         self._properties = json.dumps(properties_struct)
1008 1008
         ContentChecker.check_properties(self)
1009 1009
 
1010
+    @property
1011
+    def clean_revisions(self):
1012
+        """
1013
+        This property return revisions with really only one of each revisions:
1014
+        Actually, .revisions list give duplicated last revision,
1015
+        see https://github.com/tracim/tracim/issues/126
1016
+        :return: list of revisions
1017
+        """
1018
+        return list(set(self.revisions))
1019
+
1010 1020
     def created_as_delta(self, delta_from_datetime:datetime=None):
1011 1021
         if not delta_from_datetime:
1012 1022
             delta_from_datetime = datetime.utcnow()
@@ -1093,13 +1103,13 @@ class Content(DeclarativeBase):
1093 1103
         return last_comment
1094 1104
 
1095 1105
     def get_previous_revision(self) -> 'ContentRevisionRO':
1096
-        rev_ids = [revision.revision_id for revision in self.revisions]
1106
+        rev_ids = [revision.revision_id for revision in self.clean_revisions]
1097 1107
         rev_ids.sort()
1098 1108
 
1099 1109
         if len(rev_ids)>=2:
1100 1110
             revision_rev_id = rev_ids[-2]
1101 1111
 
1102
-            for revision in self.revisions:
1112
+            for revision in self.clean_revisions:
1103 1113
                 if revision.revision_id == revision_rev_id:
1104 1114
                     return revision
1105 1115
 
@@ -1128,7 +1138,7 @@ class Content(DeclarativeBase):
1128 1138
         events = []
1129 1139
         for comment in self.get_comments():
1130 1140
             events.append(VirtualEvent.create_from_content(comment))
1131
-        for revision in self.revisions:
1141
+        for revision in self.clean_revisions:
1132 1142
             events.append(VirtualEvent.create_from_content_revision(revision))
1133 1143
 
1134 1144
         sorted_events = sorted(events,