diff --git a/app.py b/app.py index baadcfd..05a5d7e 100644 --- a/app.py +++ b/app.py @@ -1,3 +1,5 @@ +import os +from werkzeug.utils import secure_filename from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy @@ -8,6 +10,13 @@ app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///dashboard.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) +UPLOAD_FOLDER = 'static/uploads' +app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER + +# Ensure the upload folder exists +if not os.path.exists(UPLOAD_FOLDER): + os.makedirs(UPLOAD_FOLDER) + # Modele pentru baza de date class Player(db.Model): id = db.Column(db.Integer, primary_key=True) @@ -96,12 +105,61 @@ def upload_content(): groups = Group.query.all() return render_template('upload_content.html', players=players, groups=groups) +# ...existing code... + +@app.route('/content//edit', methods=['POST']) +def edit_content(content_id): + content = Content.query.get_or_404(content_id) + new_duration = int(request.form['duration']) + content.duration = new_duration + db.session.commit() + return redirect(url_for('player_page', player_id=content.player_id)) + +@app.route('/content//delete', methods=['POST']) +def delete_content(content_id): + content = Content.query.get_or_404(content_id) + player_id = content.player_id + db.session.delete(content) + db.session.commit() + return redirect(url_for('player_page', player_id=player_id)) + +# ...existing code... + +@app.route('/player//fullscreen') +def player_fullscreen(player_id): + player = Player.query.get_or_404(player_id) + content = Content.query.filter_by(player_id=player_id).all() + return render_template('player_fullscreen.html', player=player, content=content) + @app.route('/player/') def player_page(player_id): player = Player.query.get_or_404(player_id) content = Content.query.filter_by(player_id=player_id).all() return render_template('player_page.html', player=player, content=content) +@app.route('/player//upload', methods=['POST']) +def upload_content_to_player(player_id): + player = Player.query.get_or_404(player_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, player_id=player_id) + db.session.add(new_content) + + db.session.commit() + return redirect(url_for('player_page', player_id=player_id)) + +@app.route('/player//delete', methods=['POST']) +def delete_player(player_id): + player = Player.query.get_or_404(player_id) + db.session.delete(player) + db.session.commit() + return redirect(url_for('dashboard')) + if __name__ == '__main__': with app.app_context(): db.create_all() # Creează toate tabelele diff --git a/instance/dashboard.db b/instance/dashboard.db index 2be60da..5560bcd 100644 Binary files a/instance/dashboard.db and b/instance/dashboard.db differ diff --git a/models.py b/models.py new file mode 100644 index 0000000..8565812 --- /dev/null +++ b/models.py @@ -0,0 +1,10 @@ +from app import db + +class Content(db.Model): + id = db.Column(db.Integer, primary_key=True) + file_name = db.Column(db.String(120), nullable=False) + duration = db.Column(db.Integer, nullable=False) + player_id = db.Column(db.Integer, db.ForeignKey('player.id'), nullable=True) + group_id = db.Column(db.Integer, db.ForeignKey('group.id'), nullable=True) + +# other models... \ No newline at end of file diff --git a/static/uploads/moto.jpg b/static/uploads/moto.jpg new file mode 100644 index 0000000..968414d Binary files /dev/null and b/static/uploads/moto.jpg differ diff --git a/static/uploads/mure1.jpg b/static/uploads/mure1.jpg new file mode 100644 index 0000000..69e798c Binary files /dev/null and b/static/uploads/mure1.jpg differ diff --git a/templates/dashboard.html b/templates/dashboard.html index a9874cd..debd26c 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -18,12 +18,22 @@
diff --git a/templates/player_fullscreen.html b/templates/player_fullscreen.html new file mode 100644 index 0000000..7aa2f0b --- /dev/null +++ b/templates/player_fullscreen.html @@ -0,0 +1,49 @@ + + + + Player Fullscreen Schedule + + + +
+ {% for item in content %} + Content Image + {% endfor %} +
+ + + \ No newline at end of file diff --git a/templates/player_page.html b/templates/player_page.html index 97fe070..0ec5cf6 100644 --- a/templates/player_page.html +++ b/templates/player_page.html @@ -2,14 +2,64 @@ Player Schedule + -

Player Schedule

-
    - {% for item in schedule %} -
  • {{ item.file }} - {{ item.duration }} seconds
  • - {% endfor %} -
- Back to Dashboard +
+

Player Schedule for {{ player.username }}

+ + +
+
+

Schedule

+
+
+
    + {% for item in content %} +
  • +
    + {{ item.file_name }} - {{ item.duration }} seconds +
    +
    + +
    + + +
    + +
    + +
    +
    +
  • + {% endfor %} +
+
+
+ + +
+
+

Upload Content

+
+
+
+
+ + +
+
+ + +
+ +
+
+
+ + Back to Dashboard +
+ + - + \ No newline at end of file