def on_home_clicked(self, button): self.view_date = dt.date.today() if self.week_view.get_active(): self.start_date = self.view_date - dt.timedelta(self.view_date.weekday() + 1) self.start_date = self.start_date + dt.timedelta(stuff.locale_first_weekday()) self.end_date = self.start_date + dt.timedelta(6) elif self.month_view.get_active(): self.start_date = self.view_date - dt.timedelta(self.view_date.day - 1) #set to beginning of month first_weekday, days_in_month = calendar.monthrange(self.view_date.year, self.view_date.month) self.end_date = self.start_date + dt.timedelta(days_in_month - 1) self.do_graph()
def on_week_toggled(self, button): self.start_date = self.view_date - dt.timedelta(self.view_date.weekday() + 1) self.start_date = self.start_date + dt.timedelta(stuff.locale_first_weekday()) self.end_date = self.start_date + dt.timedelta(6) self.do_graph()
def __init__(self, parent = None): self.parent = parent# determine if app shut shut down on close self._gui = stuff.load_ui_file("stats.ui") self.window = self.get_widget('stats_window') self.stat_facts = None #id, caption, duration, date (invisible), description, category self.fact_store = gtk.TreeStore(int, str, str, str, str, str, gobject.TYPE_PYOBJECT) self.setup_tree() #graphs self.background = (0.975,0.975,0.975) self.get_widget("graph_frame").modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(*[int(b*65536.0) for b in self.background])) self.get_widget("explore_frame").modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(*[int(b*65536.0) for b in self.background])) x_offset = 90 # let's nicely align all graphs self.category_chart = charting.BarChart(background = self.background, bar_base_color = (238,221,221), legend_width = x_offset, max_bar_width = 35, show_stack_labels = True ) self.get_widget("totals_by_category").add(self.category_chart) self.day_chart = charting.BarChart(background = self.background, bar_base_color = (220, 220, 220), show_scale = True, max_bar_width = 35, grid_stride = 4, legend_width = 20) self.get_widget("totals_by_day").add(self.day_chart) self.activity_chart = charting.HorizontalBarChart(orient = "horizontal", max_bar_width = 25, values_on_bars = True, stretch_grid = True, legend_width = x_offset, value_format = "%.1f", background = self.background, bars_beveled = False, animate = False) self.get_widget("totals_by_activity").add(self.activity_chart); self.view_date = dt.date.today() #set to monday self.start_date = self.view_date - \ dt.timedelta(self.view_date.weekday() + 1) # look if we need to start on sunday or monday self.start_date = self.start_date + \ dt.timedelta(stuff.locale_first_weekday()) self.end_date = self.start_date + dt.timedelta(6) self.week_view = self.get_widget("week") self.month_view = self.get_widget("month") self.month_view.set_group(self.week_view) #initiate the form in the week view self.week_view.set_active(True) runtime.dispatcher.add_handler('activity_updated', self.after_activity_update) runtime.dispatcher.add_handler('day_updated', self.after_fact_update) selection = self.fact_tree.get_selection() selection.connect('changed', self.on_fact_selection_changed, self.fact_store) self.popular_categories = [cat[0] for cat in runtime.storage.get_popular_categories()] self._gui.connect_signals(self) self.fact_tree.grab_focus() self.timeline = TimeLine() self.get_widget("explore_everything").add(self.timeline) self.get_widget("explore_everything").show_all() self.report_chooser = None self.do_graph() self.init_stats()