def view_changes(request, username=None, revision_id=None, object_id=None):
"""Recent changes"""
boring_models = [LanguageListOrder, LanguageList, MeaningList]
boring_model_ids = [ContentType.objects.get_for_model(m).id for m in
boring_models]
def interesting_versions(self):
return self.version_set.exclude(content_type_id__in=boring_model_ids)
Revision.add_to_class("interesting_versions", interesting_versions)
if not username:
recent_changes = Revision.objects.all().order_by("-id")
else:
recent_changes = Revision.objects.filter(
user__username=username).order_by("-id")
paginator = Paginator(recent_changes, 50)
try: # Make sure page request is an int. If not, deliver first page.
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try: # If page request is out of range, deliver last page of results.
changes = paginator.page(page)
except (EmptyPage, InvalidPage):
changes = paginator.page(paginator.num_pages)
userIds = set(Revision.objects.values_list("user", flat=True).distinct())
contributors = sorted([(User.objects.get(id=user_id),
Revision.objects.filter(user=user_id).count())
for user_id in userIds
if user_id is not None],
key=lambda x: -x[1])
return render_template(request, "view_changes.html",
{"changes": changes,
"contributors": contributors})
评论列表
文章目录