Skip to content

Commit f681d6b

Browse files
committed
Merge branch 'master' of github.com:pneumaticapp/pneumaticworkflow into backend/notifications/45267__update_complete_workflow_notification
2 parents 1ab5c15 + f6730d3 commit f681d6b

8 files changed

Lines changed: 52 additions & 52 deletions

File tree

backend/src/processes/migrations/0246_taskfield_default_value.py

Lines changed: 0 additions & 28 deletions
This file was deleted.

backend/src/processes/models/workflows/fields.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,17 @@ class Meta:
2828
ordering = ['-order', 'id']
2929

3030
value = models.TextField(
31+
blank=True,
3132
help_text='Human readable value',
32-
default='',
3333
)
3434
clear_value = models.TextField(
35-
default='',
35+
null=True,
36+
blank=True,
3637
help_text='Does not contains markdown',
3738
)
3839
markdown_value = models.TextField(
39-
default='',
40+
null=True,
41+
blank=True,
4042
help_text='Contains markdown representation',
4143
)
4244
task = models.ForeignKey(

backend/src/processes/serializers/workflows/workflow.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ def validate(self, attrs):
303303
Q(id=task_id) | Q(api_name=task_api_name),
304304
).first()
305305
if task is None:
306-
raise ValidationError(messages.MSG_PW_0076)
306+
raise ValidationError(messages.MSG_PW_0077)
307307
if not task.is_active:
308308
raise ValidationError(messages.MSG_PW_0086)
309309

backend/src/processes/tests/test_services/test_tasks/test_task_version_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ def test_update_from_version__all_fields__active_task__ok(mocker):
402402

403403

404404
@pytest.mark.parametrize('status', TaskStatus.INACTIVE_STATUS)
405-
def test_update_from_version__inactive_task_field_value__insert_empty(
405+
def test_update_from_version__inactive_task_field_value__insert_null(
406406
mocker,
407407
status,
408408
):
@@ -543,7 +543,7 @@ def test_update_from_version__inactive_task_field_value__insert_empty(
543543
create_or_update_instance_mock.assert_called_once_with(
544544
data=data,
545545
workflow=workflow,
546-
fields_values={field_api_name: ''},
546+
fields_values={field_api_name: None},
547547
)
548548
update_fields_mock.assert_called_once_with(
549549
data=data['fields'],
@@ -554,7 +554,7 @@ def test_update_from_version__inactive_task_field_value__insert_empty(
554554
update_checklists_mock.assert_called_once_with(
555555
data=data['checklists'],
556556
version=version,
557-
fields_values={field_api_name: ''},
557+
fields_values={field_api_name: None},
558558
)
559559
update_raw_due_date_mock.assert_called_once_with(
560560
data=data['raw_due_date'],

backend/src/processes/tests/test_services/test_tasks/test_taskfield.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ def test_create_instance__skip_value__ok(mocker):
203203
get_valid_value_mock.assert_not_called()
204204
task_field = service.instance
205205
assert task_field.value == ''
206-
assert task_field.clear_value == ''
207-
assert task_field.markdown_value == ''
206+
assert task_field.clear_value is None
207+
assert task_field.markdown_value is None
208208
assert task_field.user_id is None
209209
assert task_field.group_id is None
210210

backend/src/processes/tests/test_services/test_workflow_action_service.py

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,7 +1175,7 @@ def test_skip_task__is_returned_has_parents__set_pending_start_prev(mocker):
11751175
assert task.status == TaskStatus.PENDING
11761176
task_service_init_mock.assert_called_once_with(instance=task, user=owner)
11771177
insert_fields_values_mock.assert_called_once_with(
1178-
fields_values={'workflow-starter': 'John Doe'},
1178+
fields_values={'workflow-starter': owner.name},
11791179
)
11801180
task_skip_event_mock.assert_called_once_with(task)
11811181
start_prev_tasks_mock.assert_called_once_with(task)
@@ -1220,7 +1220,7 @@ def test_skip_task__not_returned__set_skipped_start_next(mocker):
12201220
assert task.status == TaskStatus.SKIPPED
12211221
task_service_init_mock.assert_called_once_with(instance=task, user=owner)
12221222
insert_fields_values_mock.assert_called_once_with(
1223-
fields_values={'workflow-starter': 'John Doe'},
1223+
fields_values={'workflow-starter': owner.name},
12241224
)
12251225
task_skip_event_mock.assert_called_once_with(task)
12261226
start_prev_tasks_mock.assert_not_called()
@@ -1272,7 +1272,7 @@ def test_skip_task__external__guest_workflow_starter(mocker):
12721272
start_next_tasks_mock.assert_called_once_with(parent_task=task)
12731273

12741274

1275-
def test_skip_task__skipped_fields__insert_blank_value(mocker):
1275+
def test_skip_task__skipped_fields__insert_null_value(mocker):
12761276

12771277
# arrange
12781278
account = create_test_account()
@@ -1322,7 +1322,10 @@ def test_skip_task__skipped_fields__insert_blank_value(mocker):
13221322
assert task_2.status == TaskStatus.SKIPPED
13231323
task_service_init_mock.assert_called_once_with(instance=task_2, user=owner)
13241324
insert_fields_values_mock.assert_called_once_with(
1325-
fields_values={field.api_name: ''},
1325+
fields_values={
1326+
'workflow-starter': owner.name,
1327+
field.api_name: None,
1328+
},
13261329
)
13271330
task_skip_event_mock.assert_called_once_with(task_2)
13281331
start_prev_tasks_mock.assert_not_called()
@@ -2386,7 +2389,7 @@ def test_start_workflow__ok(mocker):
23862389
user=owner,
23872390
)
23882391
insert_fields_values_mock.assert_called_once_with(
2389-
fields_values={'workflow-starter': 'John Doe'},
2392+
fields_values={'workflow-starter': owner.name},
23902393
)
23912394
workflow_run_event_mock.assert_called_once_with(
23922395
workflow=workflow,
@@ -2448,7 +2451,7 @@ def test_start_workflow__with_ancestor_task__fire_sub_wf_event(mocker):
24482451
user=user,
24492452
)
24502453
insert_fields_values_mock.assert_called_once_with(
2451-
fields_values={'workflow-starter': 'John Doe'},
2454+
fields_values={'workflow-starter': owner.name},
24522455
)
24532456
workflow_run_event_mock.assert_called_once_with(
24542457
workflow=workflow,
@@ -2511,7 +2514,7 @@ def test_start_workflow__webhook_exists__send_webhook(mocker):
25112514
user=owner,
25122515
)
25132516
insert_fields_values_mock.assert_called_once_with(
2514-
fields_values={'workflow-starter': 'John Doe'},
2517+
fields_values={'workflow-starter': owner.name},
25152518
)
25162519
workflow_run_event_mock.assert_called_once_with(
25172520
workflow=workflow,
@@ -3362,7 +3365,11 @@ def test_start_task__no_performers__skip_and_fire_skip_event(mocker):
33623365
instance=task,
33633366
user=owner,
33643367
)
3365-
insert_fields_values_mock.assert_called_once_with(fields_values={})
3368+
insert_fields_values_mock.assert_called_once_with(
3369+
fields_values={
3370+
'workflow-starter': owner.name,
3371+
},
3372+
)
33663373
update_performers_mock.assert_called_once_with(restore_performers=True)
33673374
task_skip_no_performers_event_mock.assert_called_once_with(task)
33683375
start_next_tasks_mock.assert_called_once_with(parent_task=task)
@@ -3416,7 +3423,11 @@ def test_start_task__no_performers_is_returned__start_prev_tasks(mocker):
34163423
instance=task,
34173424
user=owner,
34183425
)
3419-
insert_fields_values_mock.assert_called_once_with(fields_values={})
3426+
insert_fields_values_mock.assert_called_once_with(
3427+
fields_values={
3428+
'workflow-starter': owner.name,
3429+
},
3430+
)
34203431
update_performers_mock.assert_called_once_with(restore_performers=True)
34213432
task_skip_no_performers_event_mock.assert_called_once_with(task)
34223433
start_prev_tasks_mock.assert_called_once_with(task)
@@ -3460,7 +3471,11 @@ def test_start_task__performers_is_returned__continue_wf_returned(mocker):
34603471
instance=task,
34613472
user=owner,
34623473
)
3463-
insert_fields_values_mock.assert_called_once_with(fields_values={})
3474+
insert_fields_values_mock.assert_called_once_with(
3475+
fields_values={
3476+
'workflow-starter': owner.name,
3477+
},
3478+
)
34643479
update_performers_mock.assert_called_once_with(restore_performers=True)
34653480
continue_workflow_mock.assert_called_once_with(
34663481
task=task,
@@ -3518,7 +3533,11 @@ def test_start_task__performers_has_active_delay__delay_task(mocker):
35183533
instance=task,
35193534
user=owner,
35203535
)
3521-
insert_fields_values_mock.assert_called_once_with(fields_values={})
3536+
insert_fields_values_mock.assert_called_once_with(
3537+
fields_values={
3538+
'workflow-starter': owner.name,
3539+
},
3540+
)
35223541
update_performers_mock.assert_called_once_with(restore_performers=True)
35233542
get_active_delay_mock.assert_called_once()
35243543
delay_task_mock.assert_called_once_with(task=task, delay=delay)
@@ -3566,7 +3585,11 @@ def test_start_task__performers_no_delay__continue_workflow(mocker):
35663585
instance=task,
35673586
user=owner,
35683587
)
3569-
insert_fields_values_mock.assert_called_once_with(fields_values={})
3588+
insert_fields_values_mock.assert_called_once_with(
3589+
fields_values={
3590+
'workflow-starter': owner.name,
3591+
},
3592+
)
35703593
update_performers_mock.assert_called_once_with(restore_performers=True)
35713594
get_active_delay_mock.assert_called_once()
35723595
continue_workflow_mock.assert_called_once_with(
@@ -3633,11 +3656,12 @@ def test_start_task__inactive_task_field_value__insert_value(mocker, status):
36333656
insert_fields_values_mock.assert_called_once_with(
36343657
fields_values={
36353658
field_api_name: field_markdown_value,
3659+
'workflow-starter': owner.name,
36363660
},
36373661
)
36383662

36393663

3640-
def test_start_task__field_value_blank__insert_value(mocker):
3664+
def test_start_task__field_value_blank__insert_null_value(mocker):
36413665

36423666
# arrange
36433667
account = create_test_account()
@@ -3685,7 +3709,8 @@ def test_start_task__field_value_blank__insert_value(mocker):
36853709
)
36863710
insert_fields_values_mock.assert_called_once_with(
36873711
fields_values={
3688-
field_api_name: '',
3712+
field_api_name: None,
3713+
'workflow-starter': owner.name,
36893714
},
36903715
)
36913716

backend/src/processes/tests/test_views/test_workflow/test_complete.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@ def test_complete__task_not_found__validation_error(api_client):
834834
# assert
835835
assert response.status_code == 400
836836
assert response.data['code'] == ErrorCode.VALIDATION_ERROR
837-
assert response.data['message'] == messages.MSG_PW_0076
837+
assert response.data['message'] == messages.MSG_PW_0077
838838

839839

840840
def test_complete__service_exception__validation_error(mocker, api_client):

frontend/src/public/components/UI/Duration/Duration.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
.field {
1414
padding: 13px 15px !important;
1515
padding-right: 70px !important;
16+
width: 100%;
1617
height: 40px !important;
1718
font-size: 1.5rem !important;
1819
line-height: 20px !important;

0 commit comments

Comments
 (0)