sort.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. # *************************************************************************
  2. # Copyright © 2015 JiangLin. All rights reserved.
  3. # File Name: sort.py
  4. # Author:JiangLin
  5. # Mail:xiyang0807@gmail.com
  6. # Created Time: 2016-02-14 21:32:42
  7. # *************************************************************************
  8. # !/usr/bin/env python
  9. # -*- coding=UTF-8 -*-
  10. from flask import request
  11. from maple.question.models import Questions,Tags
  12. from maple.group.models import Group
  13. from maple.board.models import Board_F, Board_S
  14. from datetime import datetime, timedelta
  15. def form_judge(form):
  16. '''
  17. 0: all topic
  18. 1: one day
  19. 2: one week
  20. 3: one month
  21. 0: time
  22. 1: author
  23. 0: desc
  24. 1: asc
  25. '''
  26. t1 = form.display.data
  27. t2 = form.sort.data
  28. t3 = form.st.data
  29. data = form_sort(t1, t2, t3)
  30. return data
  31. def form_sort(t1, t2, t3):
  32. url = request.args.get('by')
  33. uid = request.args.get('uid')
  34. if t1 == 0:
  35. time = datetime.now() - timedelta(days=365)
  36. elif t1 == 1:
  37. time = datetime.now() - timedelta(days=1)
  38. elif t1 == 2:
  39. time = datetime.now() - timedelta(days=7)
  40. else:
  41. time = datetime.now() - timedelta(days=30)
  42. # 发表时间
  43. if t2 == 0:
  44. if t3 == 0:
  45. if url == 'board_f':
  46. data = Board_F.load_by_id(uid)
  47. data = Questions.query.filter(
  48. Questions.time > time, Questions.kind ==
  49. data.enname_f).order_by(Questions.time.desc()).all()
  50. elif url == 'board_s':
  51. data = Board_S.load_by_id(uid)
  52. data = Questions.query.filter(
  53. Questions.time > time, Questions.board_id ==
  54. data.id).order_by(Questions.time.desc()).all()
  55. elif url == 'tags':
  56. data = Questions.query.join(Questions.tags).filter(
  57. Questions.time > time, Tags.name==
  58. uid).order_by(Questions.time.desc()).all()
  59. elif url == 'group':
  60. data = Group.load_by_id(uid)
  61. data = Questions.query.filter(
  62. Questions.time > time, Questions.group_id ==
  63. data.id).order_by(Questions.time.desc()).all()
  64. else:
  65. data = None
  66. return data
  67. else:
  68. if url == 'board_f':
  69. data = Board_F.load_by_id(uid)
  70. data = Questions.query.filter(
  71. Questions.time > time, Questions.kind ==
  72. data.enname_f).order_by(Questions.time).all()
  73. elif url == 'board_s':
  74. data = Board_S.load_by_id(uid)
  75. data = Questions.query.filter(
  76. Questions.time > time, Questions.board_id ==
  77. data.id).order_by(Questions.time).all()
  78. elif url == 'tags':
  79. data = Questions.query.join(Questions.tags).filter(
  80. Questions.time > time, Tags.name==
  81. uid).order_by(Questions.time).all()
  82. elif url == 'group':
  83. data = Group.load_by_id(uid)
  84. data = Questions.query.filter(
  85. Questions.time > time, Questions.group_id ==
  86. data.id).order_by(Questions.time).all()
  87. else:
  88. data = None
  89. return data
  90. # 作者
  91. else:
  92. if t3 == 0:
  93. if url == 'board_f':
  94. data = Board_F.load_by_id(uid)
  95. data = Questions.query.filter(
  96. Questions.time > time, Questions.kind ==
  97. data.enname_f).order_by(Questions.author_id.desc()).all()
  98. elif url == 'board_s':
  99. data = Board_S.load_by_id(uid)
  100. data = Questions.query.filter(
  101. Questions.time > time, Questions.board_id ==
  102. data.id).order_by(Questions.author_id.desc()).all()
  103. elif url == 'tags':
  104. data = Questions.query.join(Questions.tags).filter(
  105. Questions.time > time, Tags.name==
  106. uid).order_by(Questions.author_id.desc()).all()
  107. elif url == 'group':
  108. data = Group.load_by_id(uid)
  109. data = Questions.query.filter(
  110. Questions.time > time, Questions.group_id ==
  111. data.id).order_by(Questions.author_id.desc()).all()
  112. else:
  113. data = None
  114. return data
  115. else:
  116. if url == 'board_f':
  117. data = Board_F.load_by_id(uid)
  118. data = Questions.query.filter(
  119. Questions.time > time, Questions.kind ==
  120. data.enname_f).order_by(Questions.author_id).all()
  121. elif url == 'board_s':
  122. data = Board_S.load_by_id(uid)
  123. data = Questions.query.filter(
  124. Questions.time > time, Questions.board_id ==
  125. data.id).order_by(Questions.author_id).all()
  126. elif url == 'tags':
  127. data = Questions.query.join(Questions.tags).filter(
  128. Questions.time > time, Tags.name==
  129. uid).order_by(Questions.author_id).all()
  130. elif url == 'group':
  131. data = Group.load_by_id(uid)
  132. data = Questions.query.filter(
  133. Questions.time > time, Questions.group_id ==
  134. data.id).order_by(Questions.author_id).all()
  135. else:
  136. data = None
  137. return data