diff --git a/python/kontor-gui/gui/table_details.py b/python/kontor-gui/gui/table_details.py index a0e7cef..07760f0 100644 --- a/python/kontor-gui/gui/table_details.py +++ b/python/kontor-gui/gui/table_details.py @@ -8,26 +8,29 @@ class KontorTableDetailsView: def __init__(self, table_model: KontorTableModel): self._data_view: QWidget = QWidget() self._model = table_model + self.log = table_model.log + self._table_view = QTableView() self._label = QLabel() self.init_gui() def init_gui(self): + self.log.info("KontorTableDetailsView.init_gui()") layout = QVBoxLayout() self._data_view.setLayout(layout) details_layout = QHBoxLayout() table_with_details = QWidget() table_with_details.setLayout(details_layout) - table_view = QTableView() - table_view.setSelectionBehavior(QTableView.SelectionBehavior.SelectRows) + self._table_view.setSelectionBehavior(QTableView.SelectionBehavior.SelectRows) proxy_model = QSortFilterProxyModel() proxy_model.setSourceModel(self._model) - table_view.setSortingEnabled(True) - table_view.setModel(proxy_model) - table_view.clicked.connect(self.update_details) + self._table_view.setSortingEnabled(True) + self._table_view.setModel(proxy_model) + self._table_view.clicked.connect(self.update_details) + self._table_view.activated.connect(self.refresh_details) layout.addLayout(self._model.config.get_filter_layout()) - details_layout.addWidget(table_view) + details_layout.addWidget(self._table_view) form = QWidget() form_layout = QFormLayout(form) @@ -40,7 +43,7 @@ class KontorTableDetailsView: details_layout.addWidget(form) layout.addWidget(table_with_details) self._model.refresh() - table_view.resizeColumnToContents(0) + self._table_view.resizeColumnToContents(0) @property def data_view(self): @@ -48,5 +51,10 @@ class KontorTableDetailsView: def update_details(self, item): print(f"Cell {item.row()}-{item.column()} selected") - self._model.log.info(f"Cell {item.row()}-{item.column()} selected") + self.log.info(f"Cell {item.row()}-{item.column()} selected") self._label.setText(self._model.raw_data()[item.row()][0]) + + def refresh_details(self): + indexes = self._table_view.selectedIndexes() + for index in indexes: + self.log.info(f"refresh_details: Cell {index.row()}-{index.column()} selected") diff --git a/python/kontor-schema/kontor_schema/media.py b/python/kontor-schema/kontor_schema/media.py index d1e2158..bb2661e 100644 --- a/python/kontor-schema/kontor_schema/media.py +++ b/python/kontor-schema/kontor_schema/media.py @@ -76,9 +76,9 @@ class MediaActor(Base, BaseMixin): class MediaActorFile(Base, BaseMixin): __tablename__ = 'media_actor_file' - media_actor_id = Column(String, ForeignKey("media_actor.id"), nullable=False) + media_actor_id = Column(String(255), ForeignKey("media_actor.id"), nullable=False) media_actor = relationship("MediaActor", back_populates="media_actor_files") - media_file_id = Column(String, ForeignKey("media_file.id"), nullable=False) + media_file_id = Column(String(255), ForeignKey("media_file.id"), nullable=False) media_file = relationship("MediaFile", back_populates="media_actor_files")