in playwright_tests/flows/explore_articles_flows/article_flows/edit_article_meta_flow.py [0:0]
def _edit_article_metadata(self, title=None,
slug=None,
category=None,
product=None,
topics=None,
obsolete=False,
discussions=True,
needs_change=False,
needs_change_comment=False,
restricted_to_groups: list[str] = None,
single_group=""):
if KBArticleRevision.KB_EDIT_METADATA not in self.utilities.get_page_url():
self.kb_article_page.click_on_edit_article_metadata()
if restricted_to_groups:
for group in restricted_to_groups:
(self.kb_article_edit_metadata_page
.add_and_select_restrict_visibility_group_metadata(group))
if single_group != "":
self.kb_article_edit_metadata_page.add_and_select_restrict_visibility_group_metadata(
single_group)
if title:
self.kb_article_edit_metadata_page.add_text_to_title_field(title)
if slug:
self.kb_article_edit_metadata_page.add_text_to_slug_field(slug)
if category:
self.kb_article_edit_metadata_page.select_category(category)
if product:
self.kb_article_edit_metadata_page.check_product_checkbox(product)
if topics:
if isinstance(topics, list):
self.submit_kb_article_page.click_on_a_particular_child_topic_checkbox(
topics[0],
topics[1],
)
else:
self.submit_kb_article_page.click_on_a_particular_parent_topic_checkbox(
topics
)
if obsolete:
if not self.kb_article_edit_metadata_page.is_obsolete_checkbox_checked():
self.kb_article_edit_metadata_page.click_on_obsolete_checkbox()
else:
if self.kb_article_edit_metadata_page.is_obsolete_checkbox_checked():
self.kb_article_edit_metadata_page.click_on_obsolete_checkbox()
if discussions:
if not self.kb_article_edit_metadata_page.is_allow_discussion_checkbox_checked():
self.kb_article_edit_metadata_page.click_on_allow_discussion_on_article_checkbox()
else:
if self.kb_article_edit_metadata_page.is_allow_discussion_checkbox_checked():
self.kb_article_edit_metadata_page.click_on_allow_discussion_on_article_checkbox()
# If it needs change we are going to ensure that the needs change checkbox is checked.
if needs_change:
if not self.kb_article_edit_metadata_page.is_needs_change_checkbox():
self.kb_article_edit_metadata_page.click_needs_change_checkbox()
# If it needs change with comment we are also adding the comment.
if needs_change_comment:
self.kb_article_edit_metadata_page.fill_needs_change_textarea(
self.utilities.kb_revision_test_data['needs_change_message']
)
# If it doesn't need comment we are ensuring that the textarea field is empty.
else:
self.kb_article_edit_metadata_page.fill_needs_change_textarea('')
# If it doesn't need change we are ensuring that the checkbox is not checked.
else:
if self.kb_article_edit_metadata_page.is_needs_change_checkbox():
self.kb_article_edit_metadata_page.click_needs_change_checkbox()
self.kb_article_edit_metadata_page.click_on_save_changes_button()