home · contact · privacy
Rename POST form key to field manipulated.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 8 Aug 2024 07:52:53 +0000 (09:52 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 8 Aug 2024 07:52:53 +0000 (09:52 +0200)
plomtask/http.py
templates/todo.html
tests/conditions.py
tests/todos.py
tests/utils.py

index 77438dce9c94427f75d3d381a094db17ef6e74af..c7897e899972d0adb1a16276d4a151b2a605ab22 100644 (file)
@@ -631,10 +631,10 @@ class TaskHandler(BaseHTTPRequestHandler):
         step_fillers = self._form.get_all_str('step_filler')
         to_update: dict[str, Any] = {
             'comment': self._form.get_str_or_fail('comment', '')}
-        for k1, k2 in [('is_done', 'done'), ('calendarize', 'calendarize')]:
-            v = self._form.get_bool_or_none(k2)
+        for k in ('is_done', 'calendarize'):
+            v = self._form.get_bool_or_none(k)
             if v is not None:
-                to_update[k1] = v
+                to_update[k] = v
         cond_rels = [self._form.get_all_int(name) for name in
                      ['conditions', 'blockers', 'enables', 'disables']]
         effort_or_not = self._form.get_str('effort')
index 732f7885d118a3d0aee383f41d329ef278d06d3e..20279bb2088543cdab9be641351a0a0da2478645 100644 (file)
@@ -57,8 +57,8 @@ select{ font-size: 0.5em; margin: 0; padding: 0; }
 </tr>
 <tr>
 <th>done</th>
-<td><input type="checkbox" name="done" {% if todo.is_done %}checked {% endif %} {% if not todo.is_doable %}disabled {% endif %}/>
-{% if not todo.is_doable and todo.is_done %}<input type="hidden" name="done" value="1" />{% endif %}
+<td><input type="checkbox" name="is_done" {% if todo.is_done %}checked {% endif %} {% if not todo.is_doable %}disabled {% endif %}/>
+{% if not todo.is_doable and todo.is_done %}<input type="hidden" name="is_done" value="1" />{% endif %}
 </td>
 </tr>
 <tr>
index f6de4f8a2ca4a7bd48f3ca1ede57eb7af7261fdc..3edafd67eeb9707286d2f0b22f66ac84ba2b6d6f 100644 (file)
@@ -134,7 +134,7 @@ class TestsWithServer(TestCaseWithServer):
         # test ignorance of meaningless non-empty params (incl. unknown key),
         # that 'sort_by' default to 'title' (even if set to something else, as
         # long as without handler) and 'pattern' get preserved
-        exp.set('pattern', 'bar')  # preserved despite zero effect!
+        exp.set('pattern', 'bar')
         exp.set('sort_by', 'title')  # for clarity (already default)
         self.check_json_get('/conditions?sort_by=foo&pattern=bar&foo=x', exp)
         # test non-empty result, automatic (positive) sorting by title
index 07597edca372a23f5fa7e47bd892b8c53ceaab42..d84bb7020062a01fadbf9d00116aa38e58379c32 100644 (file)
@@ -301,7 +301,7 @@ class TestsWithServer(TestCaseWithServer):
         self.check_post({}, '/todo?id=1')
         self.check_json_get('/todo?id=1', exp)
         # test posting doneness, comment, calendarization, effort
-        todo_post = {'done': 1, 'calendarize': 1,
+        todo_post = {'is_done': 1, 'calendarize': 1,
                      'comment': 'foo', 'effort': 2.3}
         self._post_exp_todo(1, todo_post, exp)
         self.check_json_get('/todo?id=1', exp)
@@ -537,35 +537,35 @@ class TestsWithServer(TestCaseWithServer):
         # test Todo with adoptee can only be set done if adoptee is done too
         self.post_exp_day([], {'new_todo': [1]})
         self.post_exp_day([], {'new_todo': [1]})
-        self.check_post({'adopt': 2, 'done': 1}, '/todo?id=1', 400)
-        self.check_post({'done': 1}, '/todo?id=2')
-        self.check_post({'adopt': 2, 'done': 1}, '/todo?id=1', 302)
+        self.check_post({'adopt': 2, 'is_done': 1}, '/todo?id=1', 400)
+        self.check_post({'is_done': 1}, '/todo?id=2')
+        self.check_post({'adopt': 2, 'is_done': 1}, '/todo?id=1', 302)
         # test Todo cannot be set undone with adopted Todo not done yet
-        self.check_post({'done': 0}, '/todo?id=2')
-        self.check_post({'adopt': 2, 'done': 0}, '/todo?id=1', 400)
+        self.check_post({'is_done': 0}, '/todo?id=2')
+        self.check_post({'adopt': 2, 'is_done': 0}, '/todo?id=1', 400)
         # test unadoption relieves block
-        self.check_post({'done': 0}, '/todo?id=1', 302)
+        self.check_post({'is_done': 0}, '/todo?id=1', 302)
         # test Condition being set or unset can block doneness setting
         c1_post = {'title': '', 'description': '', 'is_active': 0}
         c2_post = {'title': '', 'description': '', 'is_active': 1}
         self.check_post(c1_post, '/condition', redir='/condition?id=1')
         self.check_post(c2_post, '/condition', redir='/condition?id=2')
-        self.check_post({'conditions': [1], 'done': 1}, '/todo?id=1', 400)
-        self.check_post({'done': 1}, '/todo?id=1', 302)
-        self.check_post({'done': 0}, '/todo?id=1', 302)
-        self.check_post({'blockers': [2], 'done': 1}, '/todo?id=1', 400)
-        self.check_post({'done': 1}, '/todo?id=1', 302)
+        self.check_post({'conditions': [1], 'is_done': 1}, '/todo?id=1', 400)
+        self.check_post({'is_done': 1}, '/todo?id=1', 302)
+        self.check_post({'is_done': 0}, '/todo?id=1', 302)
+        self.check_post({'blockers': [2], 'is_done': 1}, '/todo?id=1', 400)
+        self.check_post({'is_done': 1}, '/todo?id=1', 302)
         # test setting Todo doneness can set/un-set Conditions, but only on
         # doneness change, not by mere passive state
-        self.check_post({'done': 0}, '/todo?id=2', 302)
-        self.check_post({'enables': [1], 'done': 1}, '/todo?id=1')
-        self.check_post({'conditions': [1], 'done': 1}, '/todo?id=2', 400)
-        self.check_post({'enables': [1], 'done': 0}, '/todo?id=1')
-        self.check_post({'enables': [1], 'done': 1}, '/todo?id=1')
-        self.check_post({'conditions': [1], 'done': 1}, '/todo?id=2')
-        self.check_post({'blockers': [1], 'done': 0}, '/todo?id=2', 400)
-        self.check_post({'disables': [1], 'done': 1}, '/todo?id=1')
-        self.check_post({'blockers': [1], 'done': 0}, '/todo?id=2', 400)
+        self.check_post({'is_done': 0}, '/todo?id=2', 302)
+        self.check_post({'enables': [1], 'is_done': 1}, '/todo?id=1')
+        self.check_post({'conditions': [1], 'is_done': 1}, '/todo?id=2', 400)
+        self.check_post({'enables': [1], 'is_done': 0}, '/todo?id=1')
+        self.check_post({'enables': [1], 'is_done': 1}, '/todo?id=1')
+        self.check_post({'conditions': [1], 'is_done': 1}, '/todo?id=2')
+        self.check_post({'blockers': [1], 'is_done': 0}, '/todo?id=2', 400)
+        self.check_post({'disables': [1], 'is_done': 1}, '/todo?id=1')
+        self.check_post({'blockers': [1], 'is_done': 0}, '/todo?id=2', 400)
         self.check_post({'disables': [1]}, '/todo?id=1')
-        self.check_post({'disables': [1], 'done': 1}, '/todo?id=1')
+        self.check_post({'disables': [1], 'is_done': 1}, '/todo?id=1')
         self.check_post({'blockers': [1]}, '/todo?id=2')
index acfabe72befa06b7624940a2f9f392d76b59ba8d..1a306d10a8286a264db22fbf9663f28eba3b2e1b 100644 (file)
@@ -757,8 +757,6 @@ class Expected:
                 new_children = v if isinstance(v, list) else [v]
                 corrected_kwargs['children'] += new_children
                 continue
-            if 'done' == k:
-                k = 'is_done'
             if k in {'is_done', 'calendarize'}:
                 v = v in VALID_TRUES
             corrected_kwargs[k] = v