-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature/interstitial-instruction-fix #1135
Conversation
…he rendered instructions w/ burnettk
WalkthroughWalkthroughThe update simplifies the rendering of instructions for end users in the Changes
Assessment against linked issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 1
Configuration used: .coderabbit.yaml
Files selected for processing (1)
- spiffworkflow-backend/src/spiffworkflow_backend/services/jinja_service.py (1 hunks)
Additional comments: 2
spiffworkflow-backend/src/spiffworkflow_backend/services/jinja_service.py (2)
- 51-51: The change to directly return the result of
render_jinja_template
simplifies the method and potentially resolves the issue with displaying dynamic information on an interstitial page. This direct approach reduces the chance of data being stale or not updated correctly in subsequent iterations. However, ensure that all calls to this method and the handling of its return value throughout the codebase are updated to accommodate this change, as it might affect how the returned value is processed or used elsewhere.- 48-54: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [1-50]
The import statements and the
JinjaHelpers
class appear to be correctly structured and follow Python best practices. The use of class methods inJinjaHelpers
for sanitizing values for markdown and providing a helper mapping is a good example of modularity and reusability. No changes are needed here.
if extensions and "instructionsForEndUser" in extensions: | ||
if extensions["instructionsForEndUser"]: | ||
try: | ||
instructions = cls.render_jinja_template(extensions["instructionsForEndUser"], task) | ||
extensions["instructionsForEndUser"] = instructions | ||
return instructions | ||
return cls.render_jinja_template(extensions["instructionsForEndUser"], task) | ||
except TaskModelError as wfe: | ||
wfe.add_note("Failed to render instructions for end user.") | ||
raise ApiError.from_workflow_exception("instructions_error", str(wfe), exp=wfe) from wfe |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [52-100]
The error handling within render_jinja_template
is comprehensive, covering various exceptions that could occur during template rendering. This includes handling jinja2.exceptions.TemplateError
and generic exceptions, which ensures that the method is robust against failures. However, consider adding more specific comments or documentation within the method to explain the rationale behind handling errors in this detailed manner, especially for future maintainability and understanding of the code.
+ # Handle specific jinja2 template errors, providing detailed feedback for debugging
except jinja2.exceptions.TemplateError as template_error:
+ # Handle generic exceptions, ensuring robustness of template rendering
except Exception as error:
Fixes #1061.
This removes code to add the rendered instructions back onto the task spec. This causes issues when looping over a task an instruction that needs to be rendered with fresh data each time.
Testing notes:
Summary by CodeRabbit