Esempio n. 1
0
class MusiciansDBApp(npyscreen.NPSAppManaged):
    def __init__(self, *args, **keywords):
        super().__init__(*args, **keywords)
        self.database = Database('127.0.0.1', 'postgres')

    def onStart(self):
        self.database.connect('postgres', '1')
        self.fill_database()

        self.addForm("MAIN", MainList.MainListDisplay, title='Main menu')
        self.addForm("MUSICIANSLIST",
                     MusiciansList.MusiciansListDisplay,
                     title='Musicians')
        self.addForm("MUSICIANEDIT", MusicianEdit.MusicianEdit)
        self.addForm("RELEASESLIST", ReleasesList.ReleasesListDisplay)
        self.addForm("RELEASEEDIT", ReleaseEdit.ReleaseEdit)
        self.addForm("LISTENERSLIST", ListenersList.ListenersListDisplay)
        self.addForm("LISTENEREDIT", ListenerEdit.ListenerEdit)
        self.addForm("SUBSCRIBE_TO_RELEASE",
                     SubscribeToRelease.SubscribeToRelease)
        self.addForm("SEARCH_STATUS", SearchStatus.SearchStatus)
        self.addForm("SEARCH_VIDEO", SearchVideo.SearchVideo)
        self.addForm("FULLTEXT_SEARCH", FulltextSearch.FulltextSearch)

    def onCleanExit(self):
        self.database.close()

    def fill_database(self):
        self.database.create_musicians_table()
        self.database.create_releases_table()
        self.database.create_listeners_table()
        self.database.create_listeners_releases_table()

        patokaband = Musician(name='Patoka',
                              status=Status.BAND.value,
                              members=["Skiper", "Kovalski", "Rico"])
        sportband = Musician(name='Lets sport',
                             status=Status.BAND.value,
                             members=["Skiper", "Kovalski", "Private"])
        sportsband = Musician(
            name='sports',
            status=Status.ORCHESTRA.value,
            members=["Skiper", "Kovalski", "Rico", "Private"])
        sportsportsport = Musician(
            name='sport sport sport',
            status=Status.BAND.value,
            members=["sportsman1", "sportsman2", "sportsman3"])
        release1 = Release(name='Release1',
                           date=datetime.datetime(year=1999, month=1, day=7),
                           style="Pop",
                           is_video=True,
                           musician_id=3)
        release2 = Release(name='Release2',
                           date=datetime.datetime(year=2018, month=1, day=7),
                           style="Garage rock",
                           is_video=False,
                           musician_id=1)
        release3 = Release(name='Release3',
                           date=datetime.datetime(year=2018, month=1, day=7),
                           style="Rock",
                           is_video=False,
                           musician_id=3)
        listener1 = Listener(name='Anna Siryk',
                             services=["soundcloud", "bandcamp"])
        listener2 = Listener(name='Simple Listener',
                             services=["soundcloud", "vk"])
        listener3 = Listener(name='Listener3', services=["soundcloud"])

        self.database.create_new_musician(patokaband)
        self.database.create_new_musician(sportband)
        self.database.create_new_musician(sportsband)
        self.database.create_new_musician(sportsportsport)
        # self.database.generate_random_musicians(100)

        self.database.create_new_release(release1)
        self.database.create_new_release(release2)
        self.database.create_new_release(release3)

        self.database.create_new_listener(listener1)
        self.database.create_new_listener(listener2)
        self.database.create_new_listener(listener3)

        self.database.add_listener_release(1, 1)
        self.database.add_listener_release(2, 1)
        self.database.add_listener_release(1, 2)