views.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: views.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-12-22 21:49:05 (CST)
  9. # Last Update:星期六 2017-3-25 20:27:38 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import (request, render_template)
  14. from forums.api.tag.models import Tags
  15. from forums.api.topic.models import Collect, Topic
  16. from forums.common.views import IsAuthMethodView as MethodView
  17. class FollowingTagsView(MethodView):
  18. def get(self):
  19. user = request.user
  20. page, number = self.page_info
  21. filter_dict = {'followers__username': user.username}
  22. tags = Tags.query.filter_by(**filter_dict).paginate(page, number, True)
  23. data = {'tags': tags}
  24. return render_template('follow/following_tags.html', **data)
  25. class FollowingTopicsView(MethodView):
  26. def get(self):
  27. user = request.user
  28. page, number = self.page_info
  29. filter_dict = {'followers__username': user.username}
  30. topics = Topic.query.filter_by(**filter_dict).paginate(page, number,
  31. True)
  32. data = {'topics': topics}
  33. return render_template('follow/following_topics.html', **data)
  34. class FollowingUsersView(MethodView):
  35. def get(self):
  36. user = request.user
  37. page, number = self.page_info
  38. users = user.following_users.paginate(page, number, True)
  39. data = {'users': users}
  40. return render_template('follow/following_users.html', **data)
  41. class FollowingCollectsView(MethodView):
  42. def get(self):
  43. user = request.user
  44. page, number = self.page_info
  45. filter_dict = {'followers__username': user.username}
  46. collects = Collect.query.filter_by(**filter_dict).paginate(
  47. page, number, True)
  48. data = {'collects': collects}
  49. return render_template('follow/following_collects.html', **data)