views.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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-21 22:08:37 (CST)
  9. # Last Update:星期四 2016-12-29 21:18:30 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import render_template, g, redirect, url_for
  14. from flask.views import MethodView
  15. from api.topic.models import Topic, Collect
  16. from api.reply.models import Reply
  17. from api.user.models import User
  18. from common.views import ViewListMixin
  19. class UserTopicListView(MethodView, ViewListMixin):
  20. def get(self):
  21. username = g.username
  22. page, number = self.page_info
  23. filter_dict = {'author__username': username}
  24. user = User.get(username=username)
  25. topics = Topic.get_list(page, number, filter_dict)
  26. data = {'topics': topics, 'user': user}
  27. return render_template('mine/topic_list.html', **data)
  28. class UserReplyListView(MethodView, ViewListMixin):
  29. def get(self):
  30. username = g.username
  31. page, number = self.page_info
  32. filter_dict = {'author__username': username}
  33. replies = Reply.get_list(page, number, filter_dict)
  34. user = User.get(username=username)
  35. data = {'replies': replies, 'user': user}
  36. return render_template('mine/reply_list.html', **data)
  37. class UserCollectListView(MethodView, ViewListMixin):
  38. def get(self):
  39. username = g.username
  40. page, number = self.page_info
  41. filter_dict = {'author__username': username}
  42. collects = Collect.get_list(page, number, filter_dict)
  43. user = User.get(username=username)
  44. data = {'collects': collects, 'user': user}
  45. return render_template('mine/collect_list.html', **data)
  46. class UserFollowerListView(MethodView, ViewListMixin):
  47. def get(self):
  48. username = g.username
  49. user = User.get(username=username)
  50. page, number = self.page_info
  51. users = user.following_users.paginate(page, number, True)
  52. data = {'users': users, 'user': user}
  53. return render_template('mine/follower_list.html', **data)
  54. class UserFollowingListView(MethodView, ViewListMixin):
  55. def get(self):
  56. return redirect(url_for('follow.topic'))
  57. # username = g.username
  58. # page, number = self.page_info
  59. # filter_dict = {'followers__username': username}
  60. # users = User.get_list(page, number, filter_dict)
  61. # user = User.get(username=username)
  62. # data = {'users': users, 'user': user}
  63. # return render_template('mine/following_list.html', **data)