+ w.user_name = item.author_name
+ w.email = item.author_email
+ yield w
+
+
+def image_changes_wall(user=None, max_len=None, day=None):
+ qs = Image.change_model.objects.order_by('-created_at')
+ qs = qs.select_related('author', 'tree', 'tree__title')
+ if user is not None:
+ qs = qs.filter(Q(author=user) | Q(tree__user=user))
+ if max_len is not None:
+ qs = qs[:max_len]
+ if day is not None:
+ next_day = day + timedelta(1)
+ qs = qs.filter(created_at__gte=day, created_at__lt=next_day)
+ for item in qs:
+ tag = 'stage' if item.tags.count() else 'change'
+ image = item.tree
+ w = WallItem(tag)
+ if user and item.author != user:
+ w.header = _('Related edit')
+ else:
+ w.header = _('Edit')
+ w.title = image.title
+ w.summary = item.description
+ w.url = reverse('wiki_img_editor',
+ args=[image.slug]) + '?diff=%d' % item.revision
+ w.timestamp = item.created_at
+ w.user = item.author
+ w.user_name = item.author_name