Przeglądaj źródła

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

Bastien Sevajol (Algoo) 8 lat temu
rodzic
commit
5c27e694a7
1 zmienionych plików z 13 dodań i 3 usunięć
  1. 13 3
      tracim/tracim/model/data.py

+ 13 - 3
tracim/tracim/model/data.py Wyświetl plik

1007
         self._properties = json.dumps(properties_struct)
1007
         self._properties = json.dumps(properties_struct)
1008
         ContentChecker.check_properties(self)
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
     def created_as_delta(self, delta_from_datetime:datetime=None):
1020
     def created_as_delta(self, delta_from_datetime:datetime=None):
1011
         if not delta_from_datetime:
1021
         if not delta_from_datetime:
1012
             delta_from_datetime = datetime.utcnow()
1022
             delta_from_datetime = datetime.utcnow()
1093
         return last_comment
1103
         return last_comment
1094
 
1104
 
1095
     def get_previous_revision(self) -> 'ContentRevisionRO':
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
         rev_ids.sort()
1107
         rev_ids.sort()
1098
 
1108
 
1099
         if len(rev_ids)>=2:
1109
         if len(rev_ids)>=2:
1100
             revision_rev_id = rev_ids[-2]
1110
             revision_rev_id = rev_ids[-2]
1101
 
1111
 
1102
-            for revision in self.revisions:
1112
+            for revision in self.clean_revisions:
1103
                 if revision.revision_id == revision_rev_id:
1113
                 if revision.revision_id == revision_rev_id:
1104
                     return revision
1114
                     return revision
1105
 
1115
 
1128
         events = []
1138
         events = []
1129
         for comment in self.get_comments():
1139
         for comment in self.get_comments():
1130
             events.append(VirtualEvent.create_from_content(comment))
1140
             events.append(VirtualEvent.create_from_content(comment))
1131
-        for revision in self.revisions:
1141
+        for revision in self.clean_revisions:
1132
             events.append(VirtualEvent.create_from_content_revision(revision))
1142
             events.append(VirtualEvent.create_from_content_revision(revision))
1133
 
1143
 
1134
         sorted_events = sorted(events,
1144
         sorted_events = sorted(events,