allow having multiple time the same file

This commit is contained in:
grimhilt 2023-08-08 21:16:53 +02:00
parent 443eed8dd1
commit 605be906d5
3 changed files with 6 additions and 7 deletions

View File

@ -1,4 +1,4 @@
from flask import jsonify, request from flask import jsonify
from ..models import Playlist, PlaylistFile, File from ..models import Playlist, PlaylistFile, File
from .. import db from .. import db
from datetime import datetime from datetime import datetime
@ -46,7 +46,6 @@ class PlaylistAbl:
# EDIT PLAYLIST CONTENT # EDIT PLAYLIST CONTENT
@staticmethod @staticmethod
def add_file(playlist_id, data): def add_file(playlist_id, data):
data = request.get_json()
new_playlist_file = PlaylistFile( \ new_playlist_file = PlaylistFile( \
playlist_id=playlist_id, \ playlist_id=playlist_id, \
file_id=data['file_id'], \ file_id=data['file_id'], \
@ -78,10 +77,8 @@ class PlaylistAbl:
@staticmethod @staticmethod
def remove_file(playlist_id, data): def remove_file(playlist_id, data):
data = request.get_json()
query = db.session.query(PlaylistFile) \ query = db.session.query(PlaylistFile) \
.filter(PlaylistFile.file_id == data['file_id']) \ .filter(PlaylistFile.id == data['id']) \
.filter(PlaylistFile.playlist_id == playlist_id) \
.first() .first()
db.session.delete(query) db.session.delete(query)
db.session.commit() db.session.commit()

View File

@ -7,6 +7,7 @@ class PlaylistDao:
files = [] files = []
for playlist_file in query.playlist_files: for playlist_file in query.playlist_files:
file = playlist_file.file.as_dict() file = playlist_file.file.as_dict()
file['pfid'] = playlist_file.id
file['position'] = playlist_file.position file['position'] = playlist_file.position
file['seconds'] = playlist_file.seconds file['seconds'] = playlist_file.seconds
files.append(file) files.append(file)

View File

@ -4,8 +4,9 @@ from sqlalchemy.sql import func
class PlaylistFile(db.Model): class PlaylistFile(db.Model):
__tablename__ = 'PlaylistFile' __tablename__ = 'PlaylistFile'
playlist_id = db.Column(db.Integer, db.ForeignKey('playlist.id'), primary_key=True) id = db.Column(db.Integer, primary_key=True, autoincrement=True)
file_id = db.Column(db.Integer, db.ForeignKey('file.id'), primary_key=True) playlist_id = db.Column(db.Integer, db.ForeignKey('playlist.id'))
file_id = db.Column(db.Integer, db.ForeignKey('file.id'))
position = db.Column(db.Integer) position = db.Column(db.Integer)
seconds = db.Column(db.Integer, default=10) seconds = db.Column(db.Integer, default=10)
playlist = db.relationship('Playlist', back_populates='playlist_files') playlist = db.relationship('Playlist', back_populates='playlist_files')