Skip to content

Various fixes for CRUD, Doorstop v3.1, dark mode, and smaller screens (plus some features I wanted)#17

Open
ETSells wants to merge 3 commits intosevendays:masterfrom
ETSells:master
Open

Various fixes for CRUD, Doorstop v3.1, dark mode, and smaller screens (plus some features I wanted)#17
ETSells wants to merge 3 commits intosevendays:masterfrom
ETSells:master

Conversation

@ETSells
Copy link
Copy Markdown

@ETSells ETSells commented Feb 4, 2026

Slop.

Various improvements and fixes for the following:

  • Updated API calls to Doorstop v3.1
  • Removed minimum size for the table as it wouldn't fit properly on my laptop screen
  • Various dark mode fixes:
    • Changed the method used to "grey out" non-normative requirements
    • Changed the drop downs for booleans so that the text no longer overlaps the dropdown
  • The CRUD features I expected only seemed to have U and D. Re-implemented creation and deletion. Ensure the view updates correctly.
  • Window opens at an assumed default size (this was for my own convenience since the window was always way too small, but it might be too large for some screens which can be a headache. Suggestions welcome on how to handle this)
  • Added a feature to copy UIDs on double click (I have a tracing script that makes this feature very useful)
  • Added an feature to indent requirement tree by level if an option is selected

Disclosure: significant AI-generated content -- The contents of this PR are primarily AI generated based on problems I encountered with the most recent version of this software. I've reviewed and tested everything that was generated and I intend to use this version for my own projects, but I also figured the disclosure was necessary due to the amount that's included that is not my own work.

Untested Environments: light-mode and larger screens.

(Disclosure: significant AI-generated content)

Various improvements and fixes for the following:
- Updated API calls to Doorstop v3.1
- Removed minimum size for the table as it wouldn't fit properly on my laptop screen
- Various dark mode fixes:
  - Changed the method used to "grey out" non-normative requirements
  - Changed the drop downs for booleans so that the text no longer overlaps the dropdown
- The CRUD features I expected only seemed to have U and D. Re-implemented creation and deletion. Ensure the view updates correctly.
- Window opens at an assumed default size (this was for my own convenience since the window was always way too small, but it might be too large for some screens which can be a headache. Suggestions welcome on how to handle this)
- Added a feature to copy UIDs on double click (I have a tracing script that makes this feature very useful)
@sevendays
Copy link
Copy Markdown
Owner

sevendays commented Feb 6, 2026 via email

@sevendays sevendays self-requested a review February 25, 2026 23:01
@sevendays
Copy link
Copy Markdown
Owner

I'm using the Doorstop reqs folder to have a set of requirements.

I'm seeing a small issue with the indentation: the level attribute can be specified as both 1 and 1.0, but when it is actually specified as 1.0 then the applied indentation is the same as 1.1

image

The behaviour is correct with level 1, but then it is "normative", e.g. something you need to implement, rather than a mere title/subtitle.

image

@sevendays
Copy link
Copy Markdown
Owner

I very much appreciate the possibility of adding requirements and the fact that it adds the requirement right below the selected one, with the next 'level'.

The issue is that a new custom attribute is inserted, 'doc', that apparently has a json dump of the requirement itself.

image

@ETSells
Copy link
Copy Markdown
Author

ETSells commented Feb 26, 2026

@sevendays Thanks for taking a look!

  1. I can fix the indentation for sure. I took a fairly naive approach here and can cover this edge case without much difficulty to ensure that x.0 is indented the same amount as x. Are you saying that whether a requirement is marked as normative influences how level attribute is written? I was not aware of this and did not account for it.
  2. I have no idea how the "doc" attribute was inserted. Can you provide steps to reproduce this behavior? Also, can you confirm which version of Doorstop you have installed? My testing was limited to v3.x, so if you're on 2.x there may be changes I didn't account for.

I will address your comments and make the requested fixes as soon as I have a moment, and ping you again once it's ready for re-review. Just to give you a heads up, I'm a student and in the middle of my midterm season so it may be another week or two before I can do this.

@sevendays
Copy link
Copy Markdown
Owner

sevendays commented Feb 28, 2026 via email

@ETSells
Copy link
Copy Markdown
Author

ETSells commented Mar 9, 2026

@sevendays Finally had a second to investigate and make the requested fixes.

Indentation

Fix applied in commit 0a3244f.

image

Insertion of new attribute

I was able to reproduce the problematic behavior. I didn't get this behavior on my own test set:

image

But it's definitely present in the doorstop SRD.

image

Upon investigation, it seems that the "doc" attribute doesn't have a json dump of the requirement, but rather includes a bunch of attributes that would appear to come from the document itself.

image

These are defined in the .doorstop.yml for the document as a default attribute.

image

It seems to me like this is actually intentional behavior to include the document's default attribute in every new requirement. Indeed, when you create a new requirement using the doorstop CLI, the attribute is also present there.

image

Because of this, I believe the issue here is in the doorstop test set and not with my changes, so I will not be taking action to resolve that behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants