dlg_playlist.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from datetime import datetime
  2. from PyQt5 import QtWidgets
  3. from core.models import Session
  4. from core.repositories import SessionRepository
  5. from ui.qt.dlg_playlist_ui import Ui_dlgPlaylist
  6. class DlgPlaylist(QtWidgets.QDialog):
  7. def __init__(self, playlist=None, parent=None):
  8. super().__init__(parent)
  9. self.playlist = playlist if playlist is not None else Session()
  10. self.createWidgets()
  11. def createWidgets(self):
  12. self.ui = Ui_dlgPlaylist()
  13. self.ui.setupUi(self)
  14. self.ui.lineName.setText(self.playlist.name)
  15. if self.playlist.date:
  16. self.ui.lineDate.setDateTime(self.playlist.date)
  17. self.ui.textNotes.setText(self.playlist.notes or "")
  18. self.ui.btnSave.clicked.connect(self.save)
  19. self.ui.btnCancel.clicked.connect(self.cancel)
  20. @classmethod
  21. def edit(cls, parent, playlist=None):
  22. dlg = cls(playlist, parent)
  23. r = dlg.exec_()
  24. return r
  25. def cancel(self):
  26. self.done(0)
  27. def save(self):
  28. self.playlist.name = self.ui.lineName.text()
  29. if self.ui.lineDate.dateTime():
  30. self.playlist.date = self.ui.lineDate.dateTime().toPyDateTime()
  31. self.playlist.notes = self.ui.textNotes.toPlainText()
  32. repo = SessionRepository()
  33. if not self.playlist.id:
  34. repo.create(self.playlist)
  35. repo.commit()