コード例 #1
0
 def on_toggle_chronometer(self, ev_box, gdk_ev_btn):
     time_entry = self.time_entries.get_by_id(self.time_entry_id)
     if time_entry["is_running"]:
         GtkThread(
             target=self.stop_chronometer,
             target_cb=self.stop_chronometer_cb,
         ).start()
     else:
         self.time_entries.emit("time_entry_restarted", self.time_entry_id)
         GtkThread(target=self.start_chronometer,
                   target_cb=self.start_chronometer_cb).start()
コード例 #2
0
    def on_saving_time_entry_form(self, btn):
        self.start_spinner()
        btn.hide()
        # TODO Hide Delete Button As Well
        data = {
            "user_id": self.user.data["id"],
            "notes": self.notes,
            "task_id": int(self.task_id),
            "project_id": int(self.proj_id),
            "hours": self.hours,
        }
        if not self.time_entry_id:
            data["user_id"] = self.user.data["id"]
            data["spent_date"] = self.week.get_selected_date()\
                                          .date()\
                                          .isoformat()
        else:
            if self.time_entry["is_running"]:
                del data["hours"]

        GtkThread(
            target=self.on_saving_time_entry,
            args=(self.time_entry_id, data),
            target_cb=self.on_saving_time_entry_cb,
        ).start()
コード例 #3
0
 def fetch_time_summary(self):
     GtkThread(
         target=self.time_summary.sync_data,
         args=(self.week.get_selected_date(), ),
         target_cb=gtk_thread_cb(
             lambda t: self.time_summary.emit("data_update_end")),
     ).start()
コード例 #4
0
 def on_back_to_today(self, ev_box, ev_btn):
     self.week.set_selected_date(datetime.now())
     self.week.emit("selected_date_changed")
     self.time_entries.date_obj = self.week.get_selected_date()
     GtkThread(
         target=self.time_entries.sync_data,
         target_cb=gtk_thread_cb(
             lambda t: self.time_entries.emit("data_update_end")),
     ).start()
コード例 #5
0
 def on_delete_time_entry(self, ev_box, gdk_ev_btn):
     self.start_spinner()
     self.get_widget('buttonCreateOrUpateNewTimeEntry').hide()
     ev_box.hide()
     GtkThread(
         target=self.time_entries.delete,
         args=(self.time_entry_id, ),
         target_cb=self.on_saving_time_entry_cb,
     ).start()
コード例 #6
0
ファイル: week.py プロジェクト: ramonmoraes8080/py-xharvest
 def fetch_new_time_entries(self):
     self.week.emit("selected_date_changed")
     self.time_entries.date_obj = self.week.get_selected_date()
     self.time_entries.emit('data_update_bgn')
     GtkThread(
         target=self.time_entries.sync_data,
         target_cb=gtk_thread_cb(
             lambda t: self.time_entries.emit('data_update_end')
             ),
         ).start()
コード例 #7
0
ファイル: main.py プロジェクト: ramonmoraes8080/py-xharvest
 def on_back_to_today_kb(self, *args):
     self.week.set_selected_date(datetime.now())
     self.week.emit("selected_date_changed")
     self.time_entries.date_obj = self.week.get_selected_date()
     self.time_entries.emit('data_update_bgn')
     GtkThread(
         target=self.time_entries.sync_data,
         target_cb=gtk_thread_cb(
             lambda t: self.time_entries.emit('data_update_end')
             ),
         ).start()
コード例 #8
0
 def bind_data(self):
     self.get_widget("label_user_fullname")\
         .set_markup(self.user.get_full_name())
     self.get_widget("label_user_email").set_markup(self.user.data["email"])
     self.get_widget("label_user_avatar").set_from_pixbuf(
         self.user.get_avatar_img_as_pixbuf())
     self.get_widget("label_user_avatar").set_from_pixbuf(
         self.user.get_avatar_img_as_pixbuf(), )
     GtkThread(
         target=self.user.download_user_avatar,
         target_cb=gtk_thread_cb(
             lambda t: self.user.emit("avatar_download_end")),
     ).start()
コード例 #9
0
ファイル: main.py プロジェクト: ramonmoraes8080/py-xharvest
 def fetch_base_data(self):
     '''
     Description:
         Yes. We are blocking on purpose to avoid user trying interacting
         with some part of the UI and see no reaction. We will slowly move
         the parts to be more and more asynchronous.
     '''
     self.user.sync_data()
     self.assignments.sync_data()
     self.time_entries.emit('data_update_bgn')
     GtkThread(
         target=self.time_entries.sync_data,
         target_cb=gtk_thread_cb(
             lambda t: self.time_entries.emit('data_update_end')
             ),
         ).start()
コード例 #10
0
 def on_time_entry_restarted(self, gobj, rst_time_entry_id):
     is_running = self.get_time_entry()["is_running"]
     if self.time_entry_id != rst_time_entry_id and is_running:
         GtkThread(target=self.stop_chronometer,
                   target_cb=self.stop_chronometer_cb).start()