def Update_AutoNumbers(self, new_time): ds_times = dstore.Get("times") if(ds_times["auto_number_enable"] and ds_times["auto_number_logic"]): updates = ttAutonumbers.Update(self.model.GetDataframe(), new_time) #self.model.Update() for update in updates: user = tableUsers.model.getUserParNr(int(update['nr'])) if user != None: db.update_from_dict(self.model.name, {"id":update["id"], "user_id":user["id"]}) print "I: auto number: update:", update['nr'], "id:", update["id"] eventCalcNow.set() return True #only one number at once return False
def setDataFromDict(self, mydict): print "setDataFromDict()", mydict, self.name #category changed if "category" in mydict: category = tableCategories.model.getCategoryParName(unicode(mydict["category"])) if category.empty: uiAccesories.showMessage(self.name+" Update error", "No category with this name "+(mydict['category'])+"!") return mydict["category_id"] = category['id'] del mydict["category"] #update db from mydict db.update_from_dict(self.name, mydict)
def Update_AutoNumbers(self, new_time): ret = False ds_times = dstore.Get("times") if(ds_times["auto_number_enable"] and ds_times["auto_number_logic"]): updates = ttAutonumbers.Update(self.model.GetDataframe(), new_time) #print "00: Update_AutoNumbers: ", updates, time.clock() #self.model.Update() for update in updates: user = tableUsers.model.getUserParNr(int(update['nr'])) if user != None: #update user id in db if user["nr"] < 0: #for civils also write name to user string db.update_from_dict(self.model.name, {"id":update["id"], "user_id":user["id"], "us1":user["name"]}) else: db.update_from_dict(self.model.name, {"id":update["id"], "user_id":user["id"]}) print "I: auto number: update:", update['nr'], "id:", update["id"] ret = True #only one number at once if ret == True: eventCalcNow.set() return ret
def setDataFromDict(self, mydict): print "setDataFromDict()", mydict, self.name db.update_from_dict(self.name, mydict)
def setDataFromDict(self, mydict): print "setDataFromDict()", mydict, self.name #dict => df dfChange = pd.DataFrame([mydict]) dfChange.set_index(dfChange.id, inplace=True) #take row before change (from global df) dfChangedRow = self.df.loc[dfChange.id] #take user before change old_user = tableUsers.model.getUserParNr(int(dfChangedRow['nr'])) #update row before change with change dfChangedRow.update(dfChange) #category changed if "nr" in mydict: user_id = self.checkChangedNumber(dfChangedRow.iloc[0]) if user_id == None: #dialog inside checkChangedNumber() return False #adjust dict for writing to db mydict["user_id"] = user_id if mydict["nr"] < 0: mydict["us1"] = "Civil #"+str(abs(mydict["nr"])) del mydict["nr"] elif "cell" in mydict: pass # TIMERAW column elif "timeraw" in mydict: try: dbTimeraw = TimesUtils.TimesUtils.timestring2time(mydict['timeraw']) except TimesUtils.TimeFormat_Error: uiAccesories.showMessage(self.name+" Update error", "Wrong Time format!") return False #adjust dict for writing to db mydict["time_raw"] = dbTimeraw del mydict["timeraw"] #change the state (C -> manually Changed) state = str(dfChangedRow.iloc[0]['state']) mydict["state"] = "C" + state[1] + state[2] elif "un1" in mydict: pass elif "un2" in mydict: pass elif "un3" in mydict: pass elif "us1" in mydict: pass else: uiAccesories.showMessage(self.name+" Update error", "Unexpecting change!") return False # add changed row to "changed_rows" # keep as dataframe otherwise float issues for "nr" and "cell" cleared = self.ClearCalculated(dfChangedRow.iloc[0].copy()) self.changed_rows = self.changed_rows.append(cleared) try: self.changed_rows["nr"] = int(self.changed_rows["nr"]) self.changed_rows["cell"] = int(self.changed_rows["cell"]) except: pass eventCalcReady.clear() #s #update db from mydict db.update_from_dict(self.name, mydict) #user changed => reset all times for new user if mydict and ("user_id" in mydict): #print "mazu vsechny1", mydict["user_id"] self.ResetCalculatedValuesForUser(mydict["user_id"]) #reset 1 time elif mydict and ("id" in mydict): #print "mazu neco", mydict["id"] self.ResetCalculatedValues(mydict["id"]) if old_user and ("id" in old_user): print "mazu vsechny2", old_user["id"] self.ResetCalculatedValuesForUser(old_user["id"]) #self.ResetNrOfLaps() eventCalcNow.set() return True