# Copyright 2021 (c) Anna Schumaker. # # Table: decades # +----------+-----------+--------+ # | decadeid | plstateid | decade | # +----------+-----------+--------+ from gi.repository import GObject from . import playlist from . import sql from . import year class Decade(playlist.ParentPlaylist): def __init__(self, row): playlist.ParentPlaylist.__init__(self, row, "x-office-calendar") self._decade = row["decade"] @GObject.Property def decade(self): return self._decade @GObject.Property def name(self): return f"{self._decade}s" def delete(self): Table.delete(self) def find_year(self, yr): return self.find_child(yr) def get_child_table(self): return year.Table def lookup_child(self, yr): return year.Table.lookup(yr) class DecadeTable(playlist.Model): def __init__(self): playlist.Model.__init__(self, "decades", "decade") def do_create(self): sql.execute("CREATE TABLE IF NOT EXISTS decades " "(decadeid INTEGER PRIMARY KEY, " " plstateid INTEGER NOT NULL, " " decade INTEGER UNIQUE, " " FOREIGN KEY(plstateid) REFERENCES playlist_states(plstateid))") def do_factory(self, row): return Decade(row) def do_insert(self, plstate, decade): return sql.execute("INSERT INTO decades (plstateid,decade) " "VALUES (?, ?)", [ plstate.rowid, decade ]) def do_lookup(self, decade): return sql.execute("SELECT * FROM decades WHERE decade=?", [ decade ]) Table = DecadeTable()