aboutsummaryrefslogtreecommitdiff
path: root/logic
diff options
context:
space:
mode:
authordam <dam@gudinoff>2022-01-06 11:19:43 +0000
committerdam <dam@gudinoff>2022-01-06 11:19:43 +0000
commit6a2887783f19e0a94db00dea014e1065b87e626c (patch)
tree0b71e7c0c1d5bdfcda6a5ca7af0bb10c9d37bb8c /logic
parent06b2f34ba64726028f494060376044531d763668 (diff)
downloadsurgery-log-6a2887783f19e0a94db00dea014e1065b87e626c.tar.zst
surgery-log-6a2887783f19e0a94db00dea014e1065b87e626c.zip
Prepare filters' logic.
Diffstat (limited to 'logic')
-rw-r--r--logic/database.gd30
-rw-r--r--logic/stage.gd72
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()
+
+