10
10
from datacenter .decorators import admin_required , permission_required
11
11
from datacenter .extensions import db
12
12
from datacenter .forms .admin import EditProfileAdminForm
13
- from datacenter .models import Role , User ,Tasks
13
+ from datacenter .models import Role , User , Tag , Photo , Comment , Tasks
14
14
from datacenter .utils import redirect_back
15
15
16
16
admin_bp = Blueprint ('admin' , __name__ )
17
17
18
18
19
+ # @admin_bp.route('/')
20
+ # @login_required
21
+ # @permission_required('MODERATE')
22
+ # def index():
23
+ # user_count = User.query.count()
24
+ # locked_user_count = User.query.filter_by(locked=True).count()
25
+ # blocked_user_count = User.query.filter_by(active=False).count()
26
+ # photo_count = Photo.query.count()
27
+ # reported_photos_count = Photo.query.filter(Photo.flag > 0).count()
28
+ # tag_count = Tag.query.count()
29
+ # comment_count = Comment.query.count()
30
+ # reported_comments_count = Comment.query.filter(Comment.flag > 0).count()
31
+ # return render_template('admin/index.html', user_count=user_count, photo_count=photo_count,
32
+ # tag_count=tag_count, comment_count=comment_count, locked_user_count=locked_user_count,
33
+ # blocked_user_count=blocked_user_count, reported_comments_count=reported_comments_count,
34
+ # reported_photos_count=reported_photos_count)
35
+
36
+
19
37
@admin_bp .route ('/profile/<int:user_id>' , methods = ['GET' , 'POST' ])
20
38
@login_required
21
39
@admin_required
@@ -90,6 +108,17 @@ def unlock_user(user_id):
90
108
return redirect_back ()
91
109
92
110
111
+ @admin_bp .route ('/delete/tag/<int:tag_id>' , methods = ['GET' , 'POST' ])
112
+ @login_required
113
+ @permission_required ('MODERATE' )
114
+ def delete_tag (tag_id ):
115
+ tag = Tag .query .get_or_404 (tag_id )
116
+ db .session .delete (tag )
117
+ db .session .commit ()
118
+ flash ('Tag deleted.' , 'info' )
119
+ return redirect_back ()
120
+
121
+
93
122
@admin_bp .route ('/to_top/<int:task_id>' , methods = ['GET' , 'POST' ])
94
123
@login_required
95
124
@permission_required ('MODERATE' )
@@ -145,7 +174,7 @@ def reject(task_id):
145
174
def manage_user ():
146
175
filter_rule = request .args .get ('filter' , 'all' ) # 'all', 'locked', 'blocked', 'administrator', 'moderator'
147
176
page = request .args .get ('page' , 1 , type = int )
148
- per_page = current_app .config ['MANAGE_USER_PER_PAGE ' ]
177
+ per_page = current_app .config ['ALBUMY_MANAGE_USER_PER_PAGE ' ]
149
178
administrator = Role .query .filter_by (name = 'Administrator' ).first ()
150
179
moderator = Role .query .filter_by (name = 'Moderator' ).first ()
151
180
@@ -165,6 +194,34 @@ def manage_user():
165
194
return render_template ('admin/manage_user.html' , pagination = pagination , users = users )
166
195
167
196
197
+ @admin_bp .route ('/manage/photo' , defaults = {'order' : 'by_flag' })
198
+ @admin_bp .route ('/manage/photo/<order>' )
199
+ @login_required
200
+ @permission_required ('MODERATE' )
201
+ def manage_photo (order ):
202
+ page = request .args .get ('page' , 1 , type = int )
203
+ per_page = current_app .config ['ALBUMY_MANAGE_PHOTO_PER_PAGE' ]
204
+ order_rule = 'flag'
205
+ if order == 'by_time' :
206
+ pagination = Photo .query .order_by (Photo .timestamp .desc ()).paginate (page , per_page )
207
+ order_rule = 'time'
208
+ else :
209
+ pagination = Photo .query .order_by (Photo .flag .desc ()).paginate (page , per_page )
210
+ photos = pagination .items
211
+ return render_template ('admin/manage_photo.html' , pagination = pagination , photos = photos , order_rule = order_rule )
212
+
213
+
214
+ @admin_bp .route ('/manage/tag' )
215
+ @login_required
216
+ @permission_required ('MODERATE' )
217
+ def manage_tag ():
218
+ page = request .args .get ('page' , 1 , type = int )
219
+ per_page = current_app .config ['ALBUMY_MANAGE_TAG_PER_PAGE' ]
220
+ pagination = Tag .query .order_by (Tag .id .desc ()).paginate (page , per_page )
221
+ tags = pagination .items
222
+ return render_template ('admin/manage_tag.html' , pagination = pagination , tags = tags )
223
+
224
+
168
225
@admin_bp .route ('/' )
169
226
@admin_bp .route ('/manage/task' )
170
227
@login_required
@@ -180,3 +237,19 @@ def manage_task():
180
237
tasks = pagination .items
181
238
return render_template ('admin/manage_task.html' , pagination = pagination , tasks = tasks )
182
239
240
+
241
+ @admin_bp .route ('/manage/comment' , defaults = {'order' : 'by_flag' })
242
+ @admin_bp .route ('/manage/comment/<order>' )
243
+ @login_required
244
+ @permission_required ('MODERATE' )
245
+ def manage_comment (order ):
246
+ page = request .args .get ('page' , 1 , type = int )
247
+ per_page = current_app .config ['ALBUMY_MANAGE_COMMENT_PER_PAGE' ]
248
+ order_rule = 'flag'
249
+ if order == 'by_time' :
250
+ pagination = Comment .query .order_by (Comment .timestamp .desc ()).paginate (page , per_page )
251
+ order_rule = 'time'
252
+ else :
253
+ pagination = Comment .query .order_by (Comment .flag .desc ()).paginate (page , per_page )
254
+ comments = pagination .items
255
+ return render_template ('admin/manage_comment.html' , pagination = pagination , comments = comments , order_rule = order_rule )
0 commit comments