diff options
| author | dam <dam@gudinoff> | 2022-01-06 11:19:43 +0000 |
|---|---|---|
| committer | dam <dam@gudinoff> | 2022-01-06 11:19:43 +0000 |
| commit | 6a2887783f19e0a94db00dea014e1065b87e626c (patch) | |
| tree | 0b71e7c0c1d5bdfcda6a5ca7af0bb10c9d37bb8c /logic | |
| parent | 06b2f34ba64726028f494060376044531d763668 (diff) | |
| download | surgery-log-6a2887783f19e0a94db00dea014e1065b87e626c.tar.zst surgery-log-6a2887783f19e0a94db00dea014e1065b87e626c.zip | |
Prepare filters' logic.
Diffstat (limited to 'logic')
| -rw-r--r-- | logic/database.gd | 30 | ||||
| -rw-r--r-- | logic/stage.gd | 72 |
2 files changed, 70 insertions, 32 deletions
diff --git a/logic/database.gd b/logic/database.gd index 2285470..47cddbc 100644 --- a/logic/database.gd +++ b/logic/database.gd @@ -30,12 +30,12 @@ var staged_idx: int var is_pointer_dragging := false var pointer_drag_velocity := 0.0 -onready var stage: Stage = get_node("/root/main/stage") -onready var delete_button: Button = get_node("actions/delete") -onready var edit_button: Button = get_node("actions/edit") -onready var add_button: Button = get_node("actions/add") -onready var v_scroll_bar: ScrollBar = get_v_scroll() -onready var drag_sensor: PointerInputSensor = get_node("drag_sensor") +onready var stage := get_node("/root/main/stage") #as Stage # @DAM Solve cyclic load. +onready var delete_button := get_node("actions/delete") as Button +onready var edit_button := get_node("actions/edit") as Button +onready var add_button := get_node("actions/add") as Button +onready var v_scroll_bar := get_v_scroll() as ScrollBar +onready var drag_sensor := get_node("drag_sensor") as PointerInputSensor func _init(): @@ -53,8 +53,8 @@ func _ready(): edit_button.connect("pressed", self, "edit_action") add_button.connect("pressed", self, "add_action") - stage.connect("save", self, "save") - stage.connect("discard", self, "discard") + stage.connect("save", self, "save_stage") + stage.connect("discard", self, "discard_stage") drag_sensor.connect("on_press", self, "pointer_input_handler") drag_sensor.connect("on_drag", self, "pointer_input_handler") @@ -128,15 +128,15 @@ func scroll_down(): v_scroll_bar.value = v_scroll_bar.max_value -func save(database_entry: Dictionary): - database_entry = instance_entry(database_entry) # @DAM Maybe we could not be creating endless dictionaries? +func save_stage(entry: Dictionary): + entry = instance_entry(entry) # @DAM Maybe we could not be creating endless dictionaries? var next_selected_idx: int if staged_idx >= 0: - db[staged_idx] = database_entry + db[staged_idx] = entry next_selected_idx = staged_idx else: - db.append(database_entry) - add_item(get_entry_view(database_entry)) + db.append(entry) + add_item(get_entry_view(entry)) call_deferred("scroll_down") next_selected_idx = db.size() - 1 @@ -152,7 +152,7 @@ func save(database_entry: Dictionary): grab_focus() -func discard(): +func discard_stage(): staged_idx = -1 self.visible = true grab_focus() @@ -163,7 +163,7 @@ func load_database(file_path: String = DATABASE_FILE_PATH): file.open(file_path, File.READ_WRITE) var headers: PoolStringArray var is_first_line := true -# while database_file.eof_reached() == false: # @DAM Why this? +# while file.eof_reached() == false: # @DAM Why this? while file.get_position() < file.get_len(): var csv_entry := file.get_csv_line() if is_first_line: diff --git a/logic/stage.gd b/logic/stage.gd index 73d905e..dd345e8 100644 --- a/logic/stage.gd +++ b/logic/stage.gd @@ -4,27 +4,29 @@ class_name Stage signal save # (database_entry: Dictionary) signal discard # () +const FILTERS_FILE_PATH: String = "user://filters.csv" const POINTER_VELOCITY_DECAYING_FACTOR: float = 2.5 var is_pointer_dragging := false var pointer_drag_velocity := 0.0 - -onready var process_id: LineEdit = get_node("controls/process_id") -onready var surgery_id: LineEdit = get_node("controls/surgery_id") -onready var date: DatePicker = get_node("controls/date_picker") -onready var place: LineEdit = get_node("controls/place") -onready var anesthesia: LineEdit = get_node("controls/anesthesia") -onready var first_assistant: LineEdit = get_node("controls/first_assistant") -onready var type: LineEdit = get_node("controls/type") -onready var sub_type: LineEdit = get_node("controls/sub_type") -onready var sub_sub_type: LineEdit = get_node("controls/sub_sub_type") -onready var pathology: LineEdit = get_node("controls/pathology") -onready var intervention: LineEdit = get_node("controls/intervention") -onready var is_urgency: Button = get_node("controls/is_urgency") -onready var notes: LineEdit = get_node("controls/notes") -onready var save_button: Button = get_node("controls/save") -onready var discard_button: Button = get_node("controls/discard") -onready var v_scroll_bar: VScrollBar = get_v_scrollbar() +var filters := {} + +onready var process_id := get_node("controls/process_id") as LineEdit +onready var surgery_id := get_node("controls/surgery_id") as LineEdit +onready var date := get_node("controls/date_picker") as DatePicker +onready var place := get_node("controls/place") as LineEdit +onready var anesthesia := get_node("controls/anesthesia") as LineEdit +onready var first_assistant := get_node("controls/first_assistant") as LineEdit +onready var type := get_node("controls/type") as LineEdit +onready var sub_type := get_node("controls/sub_type") as LineEdit +onready var sub_sub_type := get_node("controls/sub_sub_type") as LineEdit +onready var pathology := get_node("controls/pathology") as LineEdit +onready var intervention := get_node("controls/intervention") as LineEdit +onready var is_urgency := get_node("controls/is_urgency") as Button +onready var notes := get_node("controls/notes") as LineEdit +onready var save_button := get_node("controls/save") as Button +onready var discard_button := get_node("controls/discard") as Button +onready var v_scroll_bar := get_v_scrollbar() as VScrollBar func _ready(): @@ -159,3 +161,39 @@ func pointer_input_handler(pointer: PointerInputSensor.PointerInputData): target._gui_input(event_touch) +func load_filters(file_path: String = FILTERS_FILE_PATH): + var file := File.new() + file.open(file_path, File.READ_WRITE) + var headers: PoolStringArray + var is_first_line := true +# while file.eof_reached() == false: # @DAM Why this? + while file.get_position() < file.get_len(): + var csv_entry := file.get_csv_line() + if is_first_line: + is_first_line = false + headers = csv_entry + continue + var entry = Database.ENTRY_PROTOTYPE.duplicate(true) +# for idx in headers.size(): +# var field_name := headers[idx] +# var field_value := csv_entry[idx] +# match field_name: +# "date_year", "date_month", "date_day": +# entry[field_name] = int(field_value) +# "is_urgency": +# entry[field_name] = true if field_value.strip_edges().to_lower() == "true" else false +# _: +# entry[field_name] = field_value +# filters.append(entry) + + +func store_filters(file_path: String = FILTERS_FILE_PATH): + pass # @DAM TODO + + +func clear_filters(save_changes: bool = false): + pass # @DAM TODO + if save_changes: + store_filters() + + |
