Show More
@@ -116,14 +116,19 b' class Post(models.Model, Viewable):' | |||
|
116 | 116 | |
|
117 | 117 | return title |
|
118 | 118 | |
|
119 | def build_refmap(self) -> None: | |
|
119 | def build_refmap(self, excluded_ids=None) -> None: | |
|
120 | 120 | """ |
|
121 | 121 | Builds a replies map string from replies list. This is a cache to stop |
|
122 | 122 | the server from recalculating the map on every post show. |
|
123 | 123 | """ |
|
124 | 124 | |
|
125 | post_urls = [refpost.get_link_view() | |
|
126 | for refpost in self.referenced_posts.all()] | |
|
125 | replies = self.referenced_posts | |
|
126 | if excluded_ids is not None: | |
|
127 | replies = replies.exclude(id__in=excluded_ids) | |
|
128 | else: | |
|
129 | replies = replies.all() | |
|
130 | ||
|
131 | post_urls = [refpost.get_link_view() for refpost in replies] | |
|
127 | 132 | |
|
128 | 133 | self.refmap = ', '.join(post_urls) |
|
129 | 134 |
@@ -106,3 +106,10 b' def generate_thumb(instance, **kwargs):' | |||
|
106 | 106 | if not thumb_name == thumb_name_: |
|
107 | 107 | raise ValueError( |
|
108 | 108 | 'There is already a file named %s' % thumb_name_) |
|
109 | ||
|
110 | ||
|
111 | @receiver(pre_delete, sender=Post) | |
|
112 | def rebuild_refmap(instance, **kwargs): | |
|
113 | for referenced_post in instance.refposts.all(): | |
|
114 | referenced_post.build_refmap(excluded_ids=[instance.id]) | |
|
115 | referenced_post.save(update_fields=['refmap']) |
General Comments 0
You need to be logged in to leave comments.
Login now