def __init__(self, first, second, season): super(TwoLevelLeague, self).__init__() self.first = first self.second = second self.season = season self.first_model = LeagueModel(first) self.second_model = LeagueModel(second) self.played_round.connect(self.round_played) self.init_widget() self.round_played()
class TwoLevelLeague(QObject): played_round = pyqtSignal() league_finished = pyqtSignal(TeamSeason) update_cup_seedings = pyqtSignal() def __init__(self, first, second, season): super(TwoLevelLeague, self).__init__() self.first = first self.second = second self.season = season self.first_model = LeagueModel(first) self.second_model = LeagueModel(second) self.played_round.connect(self.round_played) self.init_widget() self.round_played() def init_widget(self): self._v_widget = uic.loadUi("TwoLevelLeague.ui") self.widget.leaguePlayButton.clicked.connect(self.play_round) self.widget.firstTable.setModel(self.first_model) self.widget.secondTable.setModel(self.second_model) @pyqtProperty(QWidget) def widget(self): return self._v_widget def round_played(self): self.widget.roundLabel.setText(str(self.first.round)) self.first_model.dataChanged.emit( self.first_model.index(0, 0), self.first_model.index(len(self.first.teams), 7) ) self.second_model.dataChanged.emit( self.second_model.index(0, 0), self.second_model.index(len(self.second.teams), 7) ) self.update_cup_seedings.emit() if self.first.round == len(self.first.schedule): self.league_done() def play_round(self): self.first.play_round() self.second.play_round() self.played_round.emit() def league_done(self): self.widget.leaguePlayButton.setEnabled(False) winner = self.first.teams[0] self.league_finished.emit(winner)
def __init__(self, league, season): super(TwoConferenceFourDivisionLeague, self).__init__() self.league = league self.season = season self.league_model = LeagueModel(league) self.init_divisions() self.played_round.connect(self.round_played) self.init_widget()
class TwoConferenceFourDivisionLeague(QObject): played_round = pyqtSignal() league_finished = pyqtSignal(TeamSeason) update_cup_seedings = pyqtSignal() def __init__(self, league, season): super(TwoConferenceFourDivisionLeague, self).__init__() self.league = league self.season = season self.league_model = LeagueModel(league) self.init_divisions() self.played_round.connect(self.round_played) self.init_widget() def init_widget(self): self._v_widget = uic.loadUi("TwoConferenceFourDivisionLeague.ui") self.widget.leaguePlayButton.clicked.connect(self.play_round) self.widget.leagueTable.setModel(self.league_model) self.widget.division1Table.setModel(self.division_models[self.season.division_names[0]]) self.widget.division2Table.setModel(self.division_models[self.season.division_names[1]]) self.widget.division3Table.setModel(self.division_models[self.season.division_names[2]]) self.widget.division4Table.setModel(self.division_models[self.season.division_names[3]]) self.widget.division1Group.setTitle(self.season.labels[0]) self.widget.division2Group.setTitle(self.season.labels[1]) self.widget.division3Group.setTitle(self.season.labels[2]) self.widget.division4Group.setTitle(self.season.labels[3]) self.widget.conference1Group.setTitle(self.season.labels[4]) self.widget.conference2Group.setTitle(self.season.labels[5]) @pyqtProperty(QWidget) def widget(self): return self._v_widget def round_played(self): self.widget.roundLabel.setText(str(self.league.round)) self.league_model.dataChanged.emit(self.league_model.index(0,0), self.league_model.index(len(self.league.teams), 7)) self.update_cup_seedings.emit() if self.league.round == len(self.league.schedule): self.league_done() def play_round(self): self.league.play_round() self.played_round.emit() def league_done(self): self.widget.leaguePlayButton.setEnabled(False) winner = self.league.teams[0] self.league_finished.emit(winner) # # def cup_done(self): # league_winner = self.widget.leagueWinner.text() # cup_winner = self.widget.cupWinner.text() # if league_winner == cup_winner: # league_second = self.league.teams[1] # self.widget.cupWinner.setText(str(league_second)) def init_divisions(self): self.divisions = {} self.division_models = {} for k, v in self.season.division_defs.items(): division = [] for team in self.league.teams: if str(team) in v: division.append(team) self.divisions[k] = Division(division) self.played_round.connect(self.divisions[k].sort_teams) self.division_models[k] = self.divisions[k].model = LeagueModel(self.divisions[k])