aboutsummaryrefslogtreecommitdiff
path: root/logic/stage.gd
diff options
context:
space:
mode:
Diffstat (limited to 'logic/stage.gd')
-rw-r--r--logic/stage.gd72
1 files changed, 55 insertions, 17 deletions
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()
+
+