Skip to content

Commit

Permalink
Merge pull request #1547 from strictdoc-project/stanislaw/move_toc
Browse files Browse the repository at this point in the history
export/html: requirement_form_object: simplify MID field factory method
  • Loading branch information
stanislaw authored Dec 29, 2023
2 parents dac8e60 + 8394bc3 commit b14cb47
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ class RequirementFormObject(ErrorObject):
def __init__(
self,
*,
is_new: bool,
requirement_mid: Optional[str],
document_mid: str,
mid_field: Optional[RequirementFormField],
Expand All @@ -197,6 +198,7 @@ def __init__(
relation_types: List[str],
):
super().__init__()
self.is_new: bool = is_new
self.requirement_mid: Optional[str] = requirement_mid
self.document_mid: str = document_mid
self.mid_field: Optional[RequirementFormField] = mid_field
Expand All @@ -214,6 +216,7 @@ def __init__(
@staticmethod
def create_from_request(
*,
is_new: bool,
requirement_mid: str,
request_form_data: FormData,
document: Document,
Expand Down Expand Up @@ -328,6 +331,7 @@ def create_from_request(
form_fields.append(form_field)

form_object = RequirementFormObject(
is_new=is_new,
requirement_mid=requirement_mid,
document_mid=document.reserved_mid.get_string_value(),
mid_field=mid_field,
Expand Down Expand Up @@ -379,6 +383,7 @@ def create_new(
form_field.field_escaped_value = next_uid

return RequirementFormObject(
is_new=True,
requirement_mid=new_requirement_mid.get_string_value(),
document_mid=document.reserved_mid.get_string_value(),
mid_field=mid_field,
Expand Down Expand Up @@ -481,6 +486,7 @@ def create_from_requirement(
)
form_refs_fields.append(form_ref_field)
return RequirementFormObject(
is_new=False,
requirement_mid=requirement.reserved_mid.get_string_value(),
document_mid=document.reserved_mid.get_string_value(),
mid_field=mid_field,
Expand Down Expand Up @@ -595,7 +601,7 @@ def validate(
assert isinstance(traceability_index, TraceabilityIndex)
assert isinstance(context_document, Document)

if self.mid_field is not None:
if self.is_new and self.mid_field is not None:
existing_node_with_this_mid = (
traceability_index.get_node_by_mid_weak(
MID(self.mid_field.field_unescaped_value)
Expand Down
8 changes: 8 additions & 0 deletions strictdoc/server/routers/main_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -811,6 +811,7 @@ async def create_requirement(request: Request):
MID(document_mid)
)
form_object = RequirementFormObject.create_from_request(
is_new=True,
requirement_mid=requirement_mid,
request_form_data=request_form_data,
document=document,
Expand Down Expand Up @@ -1062,6 +1063,7 @@ async def document__update_requirement(request: Request):

form_object: RequirementFormObject = (
RequirementFormObject.create_from_request(
is_new=False,
requirement_mid=requirement_mid,
request_form_data=request_form_data,
document=document,
Expand Down Expand Up @@ -1741,9 +1743,12 @@ def document__add_comment(requirement_mid: str, document_mid: str):
"add_requirement_comment/"
"stream_add_requirement_comment.jinja.html"
)
# The data of the form object is ignored. What matters is the comment
# form data.
output = template.render(
requirement_mid=requirement_mid,
form_object=RequirementFormObject(
is_new=False,
requirement_mid=requirement_mid,
document_mid=document.reserved_mid.get_string_value(),
mid_field=None,
Expand Down Expand Up @@ -1786,9 +1791,12 @@ def document__add_relation(requirement_mid: str, document_mid: str):
"add_requirement_relation/"
"stream_add_requirement_relation.jinja.html"
)
# The data of the form object is ignored. What matters is the relation
# form data.
output = template.render(
requirement_mid=requirement_mid,
form_object=RequirementFormObject(
is_new=False,
requirement_mid=requirement_mid,
document_mid=document_mid,
mid_field=None,
Expand Down

0 comments on commit b14cb47

Please sign in to comment.