def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.evtype = meet.edb.getvalue(event, eventdb.COL_TYPE) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.points') self.log.setLevel(logging.DEBUG) self.log.debug('opening event: ' + str(self.evno)) # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.riders = gtk.ListStore( gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 first name gobject.TYPE_STRING, # 2 last name gobject.TYPE_STRING, # 3 club gobject.TYPE_STRING, # 4 comment gobject.TYPE_INT, # 5 total gobject.TYPE_PYOBJECT, # 6 time total gobject.TYPE_STRING, # 7 place gobject.TYPE_PYOBJECT) # event points b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'omnium.ui')) self.frame = b.get_object('omnium_vbox') self.frame.connect('destroy', self.shutdown) # info pane self.info_expand = b.get_object('info_expand') b.get_object('omnium_info_evno').set_text(self.evno) self.showev = b.get_object('omnium_info_evno_show') self.prefix_ent = b.get_object('omnium_info_prefix') self.prefix_ent.set_text( self.meet.edb.getvalue(self.event, eventdb.COL_PREFIX)) self.prefix_ent.connect('changed', self.editent_cb, eventdb.COL_PREFIX) self.info_ent = b.get_object('omnium_info_title') self.info_ent.set_text( self.meet.edb.getvalue(self.event, eventdb.COL_INFO)) self.info_ent.connect('changed', self.editent_cb, eventdb.COL_INFO) self.update_expander_lbl_cb() # riders pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_enable_search(False) t.set_rules_hint(True) # riders columns uiutil.mkviewcoltxt(t, 'No.', COL_BIB, calign=1.0) uiutil.mkviewcoltxt(t, 'First Name', COL_FIRST, expand=True) uiutil.mkviewcoltxt(t, 'Last Name', COL_LAST, expand=True) uiutil.mkviewcoltxt(t, 'Club', COL_CLUB) uiutil.mkviewcoltxt(t, 'Points', COL_TOTAL, calign=1.0) uiutil.mkviewcoltod(t, 'Time', cb=self.todstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('omnium_result_win').add(t) if ui: # connect signal handlers b.connect_signals(self) # update properties in meet self.meet.menu_race_properties.set_sensitive(True) self.meet.edb.editevent(event, winopen=True) glib.timeout_add_seconds(3, self.delayed_announce)
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.irtt') self.log.setLevel(logging.DEBUG) self.log.debug('Creating new irtt event: ' + str(self.evno)) # properties # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.timerstat = 'idle' self.start = None self.lstart = None self.start_unload = None self.results = tod.todlist('NET') self.unstarters = {} self.curfintod = None self.recent_starts = {} self.riders = gtk.ListStore( gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 series gobject.TYPE_STRING, # 2 namestr gobject.TYPE_STRING, # 3 cat gobject.TYPE_STRING, # 4 comment gobject.TYPE_PYOBJECT, # 5 wstart gobject.TYPE_PYOBJECT, # 6 tstart gobject.TYPE_PYOBJECT, # 7 finish gobject.TYPE_STRING) # 8 place b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'irtt.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() # Timer Panes mf = b.get_object('race_timer_pane') self.sl = timerpane.timerpane('Start Line', doser=True) self.sl.disable() self.sl.bibent.connect('activate', self.bibent_cb, self.sl) self.sl.serent.connect('activate', self.bibent_cb, self.sl) self.fl = timerpane.timerpane('Finish Line', doser=True) self.fl.disable() self.fl.bibent.connect('activate', self.bibent_cb, self.fl) self.fl.serent.connect('activate', self.bibent_cb, self.fl) mf.pack_start(self.sl.frame) mf.pack_start(self.fl.frame) mf.set_focus_chain([self.sl.frame, self.fl.frame, self.sl.frame]) # Result Pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_rules_hint(True) t.connect('button_press_event', self.treeview_button_press) # TODO: show team name & club but pop up for rider list uiutil.mkviewcolbibser(t) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) uiutil.mkviewcoltxt(t, 'Cat', COL_CAT, self.editcol_cb) # -> Add in start time field with edit! uiutil.mkviewcoltod(t, 'Start', cb=self.wallstartstr, width=90) uiutil.mkviewcoltod(t, 'Time', cb=self.elapstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # show window if ui: b.connect_signals(self) b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'tod_context.ui')) self.context_menu = b.get_object('tod_context') b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.evtype = meet.edb.getvalue(event, eventdb.COL_TYPE) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.points') self.log.setLevel(logging.DEBUG) self.log.debug('opening event: ' + str(self.evno)) # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.riders = gtk.ListStore(gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 first name gobject.TYPE_STRING, # 2 last name gobject.TYPE_STRING, # 3 club gobject.TYPE_STRING, # 4 comment gobject.TYPE_INT, # 5 total gobject.TYPE_PYOBJECT, # 6 time total gobject.TYPE_STRING, # 7 place gobject.TYPE_PYOBJECT) # event points b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'omnium.ui')) self.frame = b.get_object('omnium_vbox') self.frame.connect('destroy', self.shutdown) # info pane self.info_expand = b.get_object('info_expand') b.get_object('omnium_info_evno').set_text(self.evno) self.showev = b.get_object('omnium_info_evno_show') self.prefix_ent = b.get_object('omnium_info_prefix') self.prefix_ent.set_text(self.meet.edb.getvalue( self.event, eventdb.COL_PREFIX)) self.prefix_ent.connect('changed', self.editent_cb, eventdb.COL_PREFIX) self.info_ent = b.get_object('omnium_info_title') self.info_ent.set_text(self.meet.edb.getvalue( self.event, eventdb.COL_INFO)) self.info_ent.connect('changed', self.editent_cb, eventdb.COL_INFO) self.update_expander_lbl_cb() # riders pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_enable_search(False) t.set_rules_hint(True) # riders columns uiutil.mkviewcoltxt(t, 'No.', COL_BIB, calign=1.0) uiutil.mkviewcoltxt(t, 'First Name', COL_FIRST, expand=True) uiutil.mkviewcoltxt(t, 'Last Name', COL_LAST, expand=True) uiutil.mkviewcoltxt(t, 'Club', COL_CLUB) uiutil.mkviewcoltxt(t, 'Points', COL_TOTAL, calign=1.0) uiutil.mkviewcoltod(t, 'Time', cb=self.todstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('omnium_result_win').add(t) if ui: # connect signal handlers b.connect_signals(self) # update properties in meet self.meet.menu_race_properties.set_sensitive(True) self.meet.edb.editevent(event, winopen=True) glib.timeout_add_seconds(3, self.delayed_announce)
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.irtt') self.log.setLevel(logging.DEBUG) self.log.debug('Creating new irtt event: ' + str(self.evno)) # properties # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.timerstat = 'idle' self.start = None self.lstart = None self.start_unload = None self.results = tod.todlist('NET') self.unstarters = {} self.curfintod = None self.recent_starts = {} self.riders = gtk.ListStore(gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 series gobject.TYPE_STRING, # 2 namestr gobject.TYPE_STRING, # 3 cat gobject.TYPE_STRING, # 4 comment gobject.TYPE_PYOBJECT, # 5 wstart gobject.TYPE_PYOBJECT, # 6 tstart gobject.TYPE_PYOBJECT, # 7 finish gobject.TYPE_STRING) # 8 place b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'irtt.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() # Timer Panes mf = b.get_object('race_timer_pane') self.sl = timerpane.timerpane('Start Line', doser=True) self.sl.disable() self.sl.bibent.connect('activate', self.bibent_cb, self.sl) self.sl.serent.connect('activate', self.bibent_cb, self.sl) self.fl = timerpane.timerpane('Finish Line', doser=True) self.fl.disable() self.fl.bibent.connect('activate', self.bibent_cb, self.fl) self.fl.serent.connect('activate', self.bibent_cb, self.fl) mf.pack_start(self.sl.frame) mf.pack_start(self.fl.frame) mf.set_focus_chain([self.sl.frame, self.fl.frame, self.sl.frame]) # Result Pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_rules_hint(True) t.connect('button_press_event', self.treeview_button_press) # TODO: show team name & club but pop up for rider list uiutil.mkviewcolbibser(t) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) uiutil.mkviewcoltxt(t, 'Cat', COL_CAT, self.editcol_cb) # -> Add in start time field with edit! uiutil.mkviewcoltod(t, 'Start', cb=self.wallstartstr, width=90) uiutil.mkviewcoltod(t, 'Time', cb=self.elapstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # show window if ui: b.connect_signals(self) b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'tod_context.ui')) self.context_menu = b.get_object('tod_context') b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()