From 48893cae139c463f8c8c1366581181ef55717c91 Mon Sep 17 00:00:00 2001 From: jasquat Date: Thu, 3 Aug 2023 15:38:02 -0400 Subject: [PATCH] fixed linting issues w/ burnettk --- .../src/spiffworkflow_backend/models/user.py | 4 ++-- .../routes/onboarding_controller.py | 10 ++++++---- .../scripts/times_executed_by_user.py | 2 +- .../services/process_instance_service.py | 9 +++------ .../integration/test_onboarding.py | 6 +++++- spiffworkflow-frontend/src/routes/HomePageRoutes.tsx | 1 + spiffworkflow-frontend/src/routes/OnboardingView.tsx | 7 ++++++- 7 files changed, 24 insertions(+), 15 deletions(-) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py index cf449ac82..0a5a91368 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py @@ -27,12 +27,12 @@ class UserModel(SpiffworkflowBaseDBModel): id: int = db.Column(db.Integer, primary_key=True) username: str = db.Column(db.String(255), nullable=False, unique=True) - email: str = db.Column(db.String(255), index=True) + email: str | None = db.Column(db.String(255), index=True) service = db.Column(db.String(255), nullable=False, unique=False, index=True) # not 'openid' -- google, aws service_id = db.Column(db.String(255), nullable=False, unique=False, index=True) - display_name: str = db.Column(db.String(255)) + display_name: str | None = db.Column(db.String(255)) tenant_specific_field_1: str | None = db.Column(db.String(255)) tenant_specific_field_2: str | None = db.Column(db.String(255)) tenant_specific_field_3: str | None = db.Column(db.String(255)) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/routes/onboarding_controller.py b/spiffworkflow-backend/src/spiffworkflow_backend/routes/onboarding_controller.py index 05fdad2e7..f91b0f338 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/routes/onboarding_controller.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/routes/onboarding_controller.py @@ -29,9 +29,11 @@ def get_onboarding() -> Response: task = processor.next_task() db.session.flush() if task: - task_model: TaskModel | None = TaskModel.query.filter_by(guid=str(task.id), - process_instance_id=process_instance.id).first() - result['task_id'] = task_model.guid - result['instructions'] = JinjaService.render_instructions_for_end_user(task_model) + task_model: TaskModel | None = TaskModel.query.filter_by( + guid=str(task.id), process_instance_id=process_instance.id + ).first() + if task_model is not None: + result["task_id"] = task_model.guid + result["instructions"] = JinjaService.render_instructions_for_end_user(task_model) return make_response(result, 200) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/scripts/times_executed_by_user.py b/spiffworkflow-backend/src/spiffworkflow_backend/scripts/times_executed_by_user.py index 616c60d9f..84d73f721 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/scripts/times_executed_by_user.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/scripts/times_executed_by_user.py @@ -19,4 +19,4 @@ class TimesExecutedByUser(Script): if process_model_identifer is not None: return ProcessInstanceService.times_executed_by_user(process_model_identifer) else: - return False + return 0 diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py index 2834ddc92..9b84649e0 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py @@ -57,18 +57,15 @@ class ProcessInstanceService: ) return started_instance is not None - def times_executed_by_user(process_model_identifier: str) -> bool: + @staticmethod + def times_executed_by_user(process_model_identifier: str) -> int: total = ( db.session.query(ProcessInstanceModel) - .filter( - ProcessInstanceModel.process_model_identifier == process_model_identifier - ) + .filter(ProcessInstanceModel.process_model_identifier == process_model_identifier) .count() ) return total - - @staticmethod def next_start_event_configuration(process_instance_model: ProcessInstanceModel) -> StartConfiguration: try: diff --git a/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_onboarding.py b/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_onboarding.py index 08964bbc4..62555aebd 100644 --- a/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_onboarding.py +++ b/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_onboarding.py @@ -45,4 +45,8 @@ class TestOnboarding(BaseTest): ) assert results.status_code == 200 - assert results.json == {"type": "default_view", "value": "my_tasks"} + assert len(results.json.keys()) == 4 + assert results.json["type"] == "default_view" + assert results.json["value"] == "my_tasks" + assert results.json["instructions"] == "" + assert results.json["task_id"] is not None diff --git a/spiffworkflow-frontend/src/routes/HomePageRoutes.tsx b/spiffworkflow-frontend/src/routes/HomePageRoutes.tsx index f0acd92ee..d618ba218 100644 --- a/spiffworkflow-frontend/src/routes/HomePageRoutes.tsx +++ b/spiffworkflow-frontend/src/routes/HomePageRoutes.tsx @@ -52,6 +52,7 @@ export default function HomePageRoutes() { {renderTabs()} + } /> } /> } /> } /> diff --git a/spiffworkflow-frontend/src/routes/OnboardingView.tsx b/spiffworkflow-frontend/src/routes/OnboardingView.tsx index fb254dc8e..eecb55525 100644 --- a/spiffworkflow-frontend/src/routes/OnboardingView.tsx +++ b/spiffworkflow-frontend/src/routes/OnboardingView.tsx @@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react'; import MDEditor from '@uiw/react-md-editor'; import HttpService from '../services/HttpService'; import { Onboarding } from '../interfaces'; +import { objectIsEmpty } from '../helpers'; export default function OnboardingView() { const [onboarding, setOnboarding] = useState(null); @@ -16,7 +17,11 @@ export default function OnboardingView() { }, [setOnboarding]); const onboardingElement = () => { - if (onboarding && onboarding.instructions.length > 0) { + if ( + onboarding && + !objectIsEmpty(onboarding) && + onboarding.instructions.length > 0 + ) { return (