From 7ef65cb44fd047151e0fa08e89559a810ff09869 Mon Sep 17 00:00:00 2001 From: Ske087 Date: Mon, 20 Jan 2025 16:30:39 +0200 Subject: [PATCH] add group page --- app.py | 38 +++++++++++++++++++++++- instance/dashboard.db | Bin 49152 -> 49152 bytes templates/dashboard.html | 18 ++++++++++-- templates/manage_group.html | 56 ++++++++++++++++++++++++++++++++++++ templates/player_page.html | 14 +++++++++ 5 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 templates/manage_group.html diff --git a/app.py b/app.py index 76b6922..9836c4e 100644 --- a/app.py +++ b/app.py @@ -30,7 +30,6 @@ login_manager.login_view = 'login' migrate = Migrate(app, db) - @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) @@ -264,6 +263,43 @@ def create_user(): db.session.commit() return redirect(url_for('admin')) +@app.route('/group//manage') +@login_required +@admin_required +def manage_group(group_id): + group = Group.query.get_or_404(group_id) + available_players = Player.query.filter(~Player.groups.any(Group.id == group_id)).all() + return render_template('manage_group.html', group=group, available_players=available_players) + +@app.route('/group//add_player', methods=['POST']) +@login_required +@admin_required +def add_player_to_group(group_id): + group = Group.query.get_or_404(group_id) + player_id = request.form['player_id'] + player = Player.query.get_or_404(player_id) + group.players.append(player) + db.session.commit() + return redirect(url_for('manage_group', group_id=group_id)) + +@app.route('/group//upload', methods=['POST']) +@login_required +@admin_required +def upload_content_to_group(group_id): + group = Group.query.get_or_404(group_id) + files = request.files.getlist('files') + duration = int(request.form['duration']) + + for file in files: + filename = secure_filename(file.filename) + file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename) + file.save(file_path) + new_content = Content(file_name=filename, duration=duration, group_id=group_id) + db.session.add(new_content) + + db.session.commit() + return redirect(url_for('manage_group', group_id=group_id)) + if __name__ == '__main__': with app.app_context(): db.create_all() # Creează toate tabelele diff --git a/instance/dashboard.db b/instance/dashboard.db index 4311077b67b96e87a61e633fa993170744360a81..d547317d0f9667a47a4ba923c780f08ea3700a4b 100644 GIT binary patch delta 112 zcmZo@U~Xt&o*>OAJ5k1&QFdd(5_>jA{$C9IzcwrKf8ZBjVPxiHWa46AU_cU;V`brF zOAJyFJ)QF>#-5_>iV0R{&C-rc)#vbUZpyC<003ti75V@G diff --git a/templates/dashboard.html b/templates/dashboard.html index 50412e3..33b5bb5 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -62,13 +62,25 @@
-

Groups

+

Player Groups

    {% for group in groups %} -
  • - {{ group.name }} ({{ group.players | length }} players) +
  • +
    + {{ group.name }} ({{ group.players | length }} players) +
      + {% for player in group.players %} +
    • + {{ player.username }} ({{ player.ip }}) +
    • + {% endfor %} +
    +
    +
  • {% endfor %}
diff --git a/templates/manage_group.html b/templates/manage_group.html new file mode 100644 index 0000000..366b552 --- /dev/null +++ b/templates/manage_group.html @@ -0,0 +1,56 @@ + + + + Manage Group + + + +
+

Manage Group: {{ group.name }}

+ + +
+
+

Add Players to Group

+
+
+
+
+ + +
+ +
+
+
+ + +
+
+

Upload Content for Group

+
+
+
+
+ + +
+
+ + +
+ +
+
+
+ + Back to Dashboard +
+ + + + \ No newline at end of file diff --git a/templates/player_page.html b/templates/player_page.html index 0ec5cf6..1b3f9d7 100644 --- a/templates/player_page.html +++ b/templates/player_page.html @@ -8,6 +8,20 @@

Player Schedule for {{ player.username }}

+ +
+ {% if player.groups %} +

Member of Group(s):

+
    + {% for group in player.groups %} +
  • {{ group.name }}
  • + {% endfor %} +
+ {% else %} +

Not a member of any group

+ {% endif %} +
+