def response_add(self, source, dialog, builder): fields = { "entry": [ "name" ], "combobox": [ "parent" ] } cleaned_data = utils.get_form_data(LocationForm, builder, fields) if cleaned_data is None: return if cleaned_data["parent_id"] == 0: cleaned_data["parent_id"] = None Location.objects.create( parent_id=cleaned_data["parent_id"], name=cleaned_data["name"] ) dialog.destroy() self.refresh_grid() query_count_all()
def response_modify(self, source, location_id, dialog, builder): fields = { "entry": [ "name" ], "combobox": [ "parent" ] } cleaned_data = utils.get_form_data(LocationForm, builder, fields) if cleaned_data is None: return if cleaned_data["parent_id"] == 0: cleaned_data["parent_id"] = None location = Location.objects.get(id=location_id) location.name = cleaned_data["name"] location.parent_id = cleaned_data["parent_id"] location.save() dialog.destroy() self.refresh_grid() query_count_all()
def response_add(self, source, dialog, equipment, builder): fields = { "entry": ["name", "exp_date", "nc_packaging", "remark"], "combobox": ["location"], "spinbutton": ["quantity"], "textview": [] } data = {"parent_id": equipment["id"]} cleaned_data = utils.get_form_data(forms.AddArticleForm, builder, fields, data) if cleaned_data is None: return # Add the article article = models.Article.objects.create( name=cleaned_data['name'], exp_date=cleaned_data['exp_date'], location_id=cleaned_data['location_id'], nc_packaging=cleaned_data['nc_packaging'], parent_id=cleaned_data['parent_id'], remark=cleaned_data['remark']) # Add the quantity models.QtyTransaction.objects.create(transaction_type=1, value=cleaned_data["quantity"], content_object=article) query_count_all() # At the end only dialog.destroy() # Refresh the list! self.refresh_grid()
def update_vessel(self, source): fields = { "entry": [ "name", "imo", "mmsi", "call_sign", "flag", "port_of_registry", "sat_phone", "gsm_phone", "email", "shipowner", ], "textview": ["address"] } cleaned_data = utils.get_form_data(VesselSettingsForm, self.builder, fields) if cleaned_data is None: return for (key, value) in cleaned_data.items(): setattr(self.vessel, key, value) self.params.save() self.params.refresh_vessel() self.builder.get_object("actionbar").hide()
def save_kit(self, source, builder, kit): fields = { "entry": [ "name" ], "combobox": [ "location" ] } cleaned_data = utils.get_form_data(forms.FirstAidKitForm, builder, fields) if cleaned_data is None: return try: kit_obj = models.FirstAidKit.objects.get(id=kit["id"]) except models.FirstAidKit.DoesNotExist as error: log.error("First aid kit (ID %s) not found.", error) return False kit_obj.name = cleaned_data["name"] kit_obj.location_id = cleaned_data["location_id"] kit_obj.save() child = self.stack.get_child_by_name("first-aid-kit-{0}".format(kit_obj.id)) self.stack.child_set_property(child, "title", cleaned_data["name"]) self.cancel(source, builder)
def save_bag(self, source, builder, bag): fields = {"entry": ["name"], "combobox": ["location"]} cleaned_data = utils.get_form_data(RescueBagForm, builder, fields) if cleaned_data is None: return # Save location bag.location.parent_id = cleaned_data["location_id"] bag.location.name = cleaned_data["name"] bag.location.save() # Save rescue bag bag.name = cleaned_data["name"] bag.save() child = self.stack.get_child_by_name("rescue-bag-{0}".format(bag.id)) self.stack.child_set_property(child, "title", cleaned_data["name"]) self.cancel(source, builder)
def response_modify(self, source, dialog, medicine, builder): fields = { "entry": ["name", "exp_date", "nc_composition", "nc_molecule", "remark"], "combobox": ["location"], "spinbutton": ["quantity"], "textview": [] } cleaned_data = utils.get_form_data(forms.ModifyMedicineForm, builder, fields) if cleaned_data is None: return # Add the medicine medicine_obj = models.Medicine.objects.get(id=medicine['id']) medicine_obj.name = cleaned_data['name'] medicine_obj.exp_date = cleaned_data['exp_date'] medicine_obj.location_id = cleaned_data['location_id'] medicine_obj.remark = cleaned_data['remark'] # if cleaned_data['nc_composition']: medicine_obj.nc_composition = cleaned_data['nc_composition'] # if cleaned_data['nc_molecule']: medicine_obj.nc_molecule = cleaned_data['nc_molecule'] medicine_obj.save() if cleaned_data["quantity"] != medicine['quantity']: # Add the quantity (transaction type STOCK COUNT) models.QtyTransaction.objects.create( transaction_type=8, value=cleaned_data["quantity"], content_object=medicine_obj) query_count_all() # At the end only dialog.destroy() # Refresh the list! self.refresh_grid()
def response_modify(self, source, dialog, item, perishable, builder): fields = { "entry": [ "exp_date", "remark", "nc" ], "spinbutton": [ "quantity" ] } data = { "perishable": perishable } cleaned_data = utils.get_form_data(forms.ModifySubitemForm, builder, fields, data) if cleaned_data is None: return item_obj = models.FirstAidKitItem.objects.get(id=item["id"]) item_obj.exp_date = cleaned_data["exp_date"] item_obj.remark = cleaned_data["remark"] item_obj.nc = cleaned_data["nc"] item_obj.save() if cleaned_data["quantity"] != item['quantity']: # Add the quantity (transaction type STOCK COUNT) models.QtyTransaction.objects.create( transaction_type=8, value=cleaned_data["quantity"], content_object=item_obj ) query_count_all() # At the end only dialog.destroy() # Refresh the list! self.refresh_grid()
def response_modify(self, source, dialog, article, builder): fields = { "entry": ["name", "exp_date", "nc_packaging", "remark"], "combobox": ["location"], "spinbutton": ["quantity"] } cleaned_data = utils.get_form_data(forms.ModifyArticleForm, builder, fields) if cleaned_data is None: return # Add the article article_obj = models.Article.objects.get(id=article['id']) article_obj.name = cleaned_data['name'] article_obj.exp_date = cleaned_data['exp_date'] article_obj.location_id = cleaned_data['location_id'] article_obj.remark = cleaned_data['remark'] article_obj.nc_packaging = cleaned_data['nc_packaging'] article_obj.save() if cleaned_data["quantity"] != article['quantity']: # Add the quantity (transaction type STOCK COUNT) models.QtyTransaction.objects.create( transaction_type=8, value=cleaned_data["quantity"], content_object=article_obj) query_count_all() # At the end only dialog.destroy() # Refresh the list! self.refresh_grid()
def update_setting(self, source): active_allowances = self.get_active_allowance() # Bulk update allowances Allowance.objects.exclude(id=0).update(active=False) Allowance.objects.filter(id__in=active_allowances).update(active=True) fields = { "spinbutton": [ "first_aid_kit", "rescue_bag", "expire_date_warning_delay", ], "switch": ["has_laboratory", "has_telemedical"] } cleaned_data = get_form_data(InventorySettingsForm, self.builder, fields) if cleaned_data is None: return # Show a dialog if the number of rescue bags is decreased in order to # select which one to delete if cleaned_data["rescue_bag"] < self.setting.rescue_bag: self.invalid = False self.dialog_delete(cleaned_data["rescue_bag"]) if self.invalid: return for (key, value) in cleaned_data.items(): setattr(self.setting, key, value) self.params.save() self.params.allowances = self.params.refresh_allowances() # Check for rescue bags if cleaned_data["rescue_bag"] > self.setting.rescue_bag: self.create_rescue_bags(cleaned_data["rescue_bag"]) # Check for laboratory if cleaned_data["has_laboratory"]: obj, created = Location.objects.get_or_create(id=10, defaults={ "name": "Laboratory", "id": 10 }) if created: self.params.refresh_locations() # Check for telemedical if cleaned_data["has_telemedical"]: obj, created = Location.objects.get_or_create(id=20, defaults={ "name": "Telemedical", "id": 20 }) if created: self.params.refresh_locations() # Update the action menu self.application.lookup_action("laboratory").set_enabled( cleaned_data["has_laboratory"]) self.application.lookup_action("telemedical").set_enabled( cleaned_data["has_telemedical"]) query_count_all() self.reset()
def response_add(self, source, dialog, item, builder): fields = { "entry": [ "remark", ], "spinbutton": [ "quantity", ], "combobox": [ "item", ] } cleaned_data = utils.get_form_data(forms.AddSubitemForm, builder, fields) if cleaned_data is None: return # Get the FirstAidKit instance try: id = int(self.stack.get_visible_child_name().split("-")[-1]) except ValueError as error: log.error("First aid kit ID cannot be found! %s", error) return try: first_aid_kit = models.FirstAidKit.objects.get(id=id) except models.FirstAidKit.DoesNotExist as error: log.error("First aid kit cannot be found! Wrong ID. %s", error) return selected = None for element in item["available"]: if element["id"] == cleaned_data["item_id"]: selected = element break if selected is None: return # Create a duplicate of the reference article/medicine article = models.FirstAidKitItem.objects.create( name=selected["name"], exp_date=selected["exp_date"], kit=first_aid_kit, nc=json.dumps(selected["nc"]), content_type_id=item["parent"]["type"], object_id=item["parent"]["id"] ) # Create a quantity transaction for FirstAidKitItem models.QtyTransaction.objects.create( transaction_type=1, value=cleaned_data["quantity"], content_object=article ) # Create a quantity transaction for reference article/medicine models.QtyTransaction.objects.create( transaction_type=10, value=cleaned_data["quantity"], object_id=cleaned_data["item_id"], content_type_id=element["type"] ) dialog.destroy() query_count_all() self.refresh_grid()