feat: Option to keep the blog and web pages to logged in users only [backport/v4]
Backport of !1302 (merged)
Conflicts detected for source commit: d139de6feacb0c02fed45953a4f20caf9bba4ba7
diff --cc frappe/commands/site.py
index cea02b4321,e049babfa9..0000000000
--- a/frappe/commands/site.py
+++ b/frappe/commands/site.py
@@@ -572,7 -572,7 +572,11 @@@ def describe_database_table(context, do
def _extract_table_stats(doctype: str, columns: list[str]) -> dict:
++<<<<<<< HEAD
+ from frappe.utils import cstr, get_table_name
++=======
+ from frappe.utils import cint, cstr, get_table_name
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
def sql_bool(val):
return cstr(val).lower() in ("yes", "1", "true")
@@@ -612,7 -612,13 +616,17 @@@
if idx["Seq_in_index"] == 1:
update_cardinality(idx["Column_name"], idx["Cardinality"])
++<<<<<<< HEAD
+ total_rows = frappe.db.count(doctype)
++=======
+ total_rows = cint(
+ frappe.db.sql(
+ f"""select table_rows
+ from information_schema.tables
+ where table_name = 'tab{doctype}'"""
+ )[0][0]
+ )
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
# fetch accurate cardinality for columns by query. WARN: This can take a lot of time.
for column in columns:
diff --cc frappe/public/js/frappe/form/grid_row.js
index 8b0a93c12d,bd0806284e..0000000000
--- a/frappe/public/js/frappe/form/grid_row.js
+++ b/frappe/public/js/frappe/form/grid_row.js
@@@ -1130,8 -1130,8 +1130,13 @@@ export default class GridRow
let ignore_fieldtypes = ["Text", "Small Text", "Code", "Text Editor", "HTML Editor"];
if (field.$input) {
field.$input.on("keydown", function (e) {
++<<<<<<< HEAD
+ var { TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW].includes(e.which)) {
++=======
+ var { ESCAPE, TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW, ESCAPE].includes(e.which)) {
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
return;
}
diff --cc frappe/utils/data.py
index e3d892aa88,4df1a6cc51..0000000000
--- a/frappe/utils/data.py
+++ b/frappe/utils/data.py
@@@ -638,14 -638,14 +638,26 @@@ def get_quarter_ending
return date.strftime(DATE_FORMAT) if as_str else date
++<<<<<<< HEAD
++=======
@typing.overload
def get_year_ending(
dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
) -> datetime.date:
...
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
++@typing.overload
++def get_year_ending(
++ dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
++) -> datetime.date:
++ ...
++
++<<<<<<< HEAD
++=======
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
@typing.overload
def get_year_ending(dt: DateTimeLikeObject | None = None, as_str: Literal[True] = False) -> str:
...
@@@ -662,12 -662,12 +674,21 @@@ def get_year_ending(date: DateTimeLikeO
year_ending = add_to_date(next_year_start, days=-1)
return year_ending.strftime(DATE_FORMAT) if as_str else year_ending
++<<<<<<< HEAD
+
+def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++=======
+
+ def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+ ) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
If the given argument is already a `datetime.time` object, it is returned as is."""
if isinstance(time_str, datetime.datetime):
diff --cc frappe/website/doctype/help_article/help_article.py
index 27fb93bcd9,b34442e82b..0000000000
--- a/frappe/website/doctype/help_article/help_article.py
+++ b/frappe/website/doctype/help_article/help_article.py
@@@ -106,12 -106,10 +106,19 @@@ def get_list_context(context=None)
no_breadcrumbs=False,
introduction=introduction,
list_template="templates/includes/list/list.html" if category else None,
++<<<<<<< HEAD
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
+ if not category:
+ list_context["get_list"] = get_category_list
+
++=======
+ get_list=get_list if category else get_category_list,
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
return list_context
diff --cc frappe/website/doctype/web_page/web_page.json
index 269f357aa2,3ce38cf9d7..0000000000
--- a/frappe/website/doctype/web_page/web_page.json
+++ b/frappe/website/doctype/web_page/web_page.json
@@@ -337,7 -352,7 +352,11 @@@
"index_web_pages_for_search": 1,
"is_published_field": "published",
"links": [],
++<<<<<<< HEAD
+ "modified": "2023-12-08 15:52:37.525003",
++=======
+ "modified": "2024-01-05 18:09:26.079517",
++>>>>>>> d139de6feacb0c02fed45953a4f20caf9bba4ba7
"modified_by": "Administrator",
"module": "Website",
"name": "Web Page",
Conflicts detected for source commit: f335416a859b5e2b310fff4480c4cbef5f4ebd63
diff --cc frappe/commands/site.py
index cea02b4321,e049babfa9..0000000000
--- a/frappe/commands/site.py
+++ b/frappe/commands/site.py
@@@ -572,7 -572,7 +572,11 @@@ def describe_database_table(context, do
def _extract_table_stats(doctype: str, columns: list[str]) -> dict:
++<<<<<<< HEAD
+ from frappe.utils import cstr, get_table_name
++=======
+ from frappe.utils import cint, cstr, get_table_name
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
def sql_bool(val):
return cstr(val).lower() in ("yes", "1", "true")
@@@ -612,7 -612,13 +616,17 @@@
if idx["Seq_in_index"] == 1:
update_cardinality(idx["Column_name"], idx["Cardinality"])
++<<<<<<< HEAD
+ total_rows = frappe.db.count(doctype)
++=======
+ total_rows = cint(
+ frappe.db.sql(
+ f"""select table_rows
+ from information_schema.tables
+ where table_name = 'tab{doctype}'"""
+ )[0][0]
+ )
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
# fetch accurate cardinality for columns by query. WARN: This can take a lot of time.
for column in columns:
diff --cc frappe/public/js/frappe/form/grid_row.js
index 8b0a93c12d,bd0806284e..0000000000
--- a/frappe/public/js/frappe/form/grid_row.js
+++ b/frappe/public/js/frappe/form/grid_row.js
@@@ -1130,8 -1130,8 +1130,13 @@@ export default class GridRow
let ignore_fieldtypes = ["Text", "Small Text", "Code", "Text Editor", "HTML Editor"];
if (field.$input) {
field.$input.on("keydown", function (e) {
++<<<<<<< HEAD
+ var { TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW].includes(e.which)) {
++=======
+ var { ESCAPE, TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW, ESCAPE].includes(e.which)) {
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
return;
}
diff --cc frappe/utils/data.py
index e3d892aa88,4df1a6cc51..0000000000
--- a/frappe/utils/data.py
+++ b/frappe/utils/data.py
@@@ -638,14 -638,14 +638,26 @@@ def get_quarter_ending
return date.strftime(DATE_FORMAT) if as_str else date
++<<<<<<< HEAD
++=======
@typing.overload
def get_year_ending(
dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
) -> datetime.date:
...
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
++@typing.overload
++def get_year_ending(
++ dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
++) -> datetime.date:
++ ...
++
++<<<<<<< HEAD
++=======
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
@typing.overload
def get_year_ending(dt: DateTimeLikeObject | None = None, as_str: Literal[True] = False) -> str:
...
@@@ -662,12 -662,12 +674,21 @@@ def get_year_ending(date: DateTimeLikeO
year_ending = add_to_date(next_year_start, days=-1)
return year_ending.strftime(DATE_FORMAT) if as_str else year_ending
++<<<<<<< HEAD
+
+def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++=======
+
+ def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+ ) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
If the given argument is already a `datetime.time` object, it is returned as is."""
if isinstance(time_str, datetime.datetime):
diff --cc frappe/website/doctype/blog_settings/blog_settings.json
index 5bc3d48c93,f9ef1139ab..0000000000
--- a/frappe/website/doctype/blog_settings/blog_settings.json
+++ b/frappe/website/doctype/blog_settings/blog_settings.json
@@@ -10,6 -10,7 +10,10 @@@
"preview_image",
"column_break",
"login_required",
++<<<<<<< HEAD
++=======
+ "show_sidebar",
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
"enable_social_sharing",
"allow_guest_to_comment",
"browse_by_category",
@@@ -134,13 -135,20 +138,27 @@@
"fieldname": "login_required",
"fieldtype": "Check",
"label": "Login required"
++<<<<<<< HEAD
++=======
+ },
+ {
+ "default": "0",
+ "depends_on": "eval:doc.login_required",
+ "fieldname": "show_sidebar",
+ "fieldtype": "Check",
+ "label": "Show sidebar"
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
}
],
"icon": "fa fa-cog",
"idx": 1,
"issingle": 1,
"links": [],
++<<<<<<< HEAD
+ "modified": "2024-01-05 18:00:49.183492",
++=======
+ "modified": "2024-01-05 18:18:06.936842",
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
"modified_by": "Administrator",
"module": "Website",
"name": "Blog Settings",
diff --cc frappe/website/doctype/help_article/help_article.py
index 27fb93bcd9,b34442e82b..0000000000
--- a/frappe/website/doctype/help_article/help_article.py
+++ b/frappe/website/doctype/help_article/help_article.py
@@@ -106,12 -106,10 +106,19 @@@ def get_list_context(context=None)
no_breadcrumbs=False,
introduction=introduction,
list_template="templates/includes/list/list.html" if category else None,
++<<<<<<< HEAD
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
+ if not category:
+ list_context["get_list"] = get_category_list
+
++=======
+ get_list=get_list if category else get_category_list,
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
++>>>>>>> f335416a859b5e2b310fff4480c4cbef5f4ebd63
return list_context
Conflicts detected for source commit: b2c2f90cd33f88268af55019c057570ebb1d8943
diff --cc frappe/commands/site.py
index cea02b4321,e049babfa9..0000000000
--- a/frappe/commands/site.py
+++ b/frappe/commands/site.py
@@@ -572,7 -572,7 +572,11 @@@ def describe_database_table(context, do
def _extract_table_stats(doctype: str, columns: list[str]) -> dict:
++<<<<<<< HEAD
+ from frappe.utils import cstr, get_table_name
++=======
+ from frappe.utils import cint, cstr, get_table_name
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
def sql_bool(val):
return cstr(val).lower() in ("yes", "1", "true")
@@@ -612,7 -612,13 +616,17 @@@
if idx["Seq_in_index"] == 1:
update_cardinality(idx["Column_name"], idx["Cardinality"])
++<<<<<<< HEAD
+ total_rows = frappe.db.count(doctype)
++=======
+ total_rows = cint(
+ frappe.db.sql(
+ f"""select table_rows
+ from information_schema.tables
+ where table_name = 'tab{doctype}'"""
+ )[0][0]
+ )
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
# fetch accurate cardinality for columns by query. WARN: This can take a lot of time.
for column in columns:
diff --cc frappe/public/js/frappe/form/grid_row.js
index 8b0a93c12d,bd0806284e..0000000000
--- a/frappe/public/js/frappe/form/grid_row.js
+++ b/frappe/public/js/frappe/form/grid_row.js
@@@ -1130,8 -1130,8 +1130,13 @@@ export default class GridRow
let ignore_fieldtypes = ["Text", "Small Text", "Code", "Text Editor", "HTML Editor"];
if (field.$input) {
field.$input.on("keydown", function (e) {
++<<<<<<< HEAD
+ var { TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW].includes(e.which)) {
++=======
+ var { ESCAPE, TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW, ESCAPE].includes(e.which)) {
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
return;
}
diff --cc frappe/utils/data.py
index e3d892aa88,4df1a6cc51..0000000000
--- a/frappe/utils/data.py
+++ b/frappe/utils/data.py
@@@ -638,14 -638,14 +638,26 @@@ def get_quarter_ending
return date.strftime(DATE_FORMAT) if as_str else date
++<<<<<<< HEAD
++=======
@typing.overload
def get_year_ending(
dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
) -> datetime.date:
...
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
++@typing.overload
++def get_year_ending(
++ dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
++) -> datetime.date:
++ ...
++
++<<<<<<< HEAD
++=======
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
@typing.overload
def get_year_ending(dt: DateTimeLikeObject | None = None, as_str: Literal[True] = False) -> str:
...
@@@ -662,12 -662,12 +674,21 @@@ def get_year_ending(date: DateTimeLikeO
year_ending = add_to_date(next_year_start, days=-1)
return year_ending.strftime(DATE_FORMAT) if as_str else year_ending
++<<<<<<< HEAD
+
+def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++=======
+
+ def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+ ) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
If the given argument is already a `datetime.time` object, it is returned as is."""
if isinstance(time_str, datetime.datetime):
diff --cc frappe/website/doctype/blog_post/blog_post.py
index 9e4e25547f,0565ba1c5f..0000000000
--- a/frappe/website/doctype/blog_post/blog_post.py
+++ b/frappe/website/doctype/blog_post/blog_post.py
@@@ -163,6 -163,8 +163,11 @@@ class BlogPost(WebsiteGenerator)
{"label": context.category.title, "route": context.category.route},
]
context.guest_allowed = False if login_required else frappe.db.get_single_value("Blog Settings", "allow_guest_to_comment")
++<<<<<<< HEAD
++=======
+
+ context.show_sidebar = frappe.db.get_single_value("Blog Settings", "show_sidebar")
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
def fetch_cta(self):
if frappe.db.get_single_value("Blog Settings", "show_cta_in_blog", cache=True):
diff --cc frappe/website/doctype/help_article/help_article.py
index 27fb93bcd9,b34442e82b..0000000000
--- a/frappe/website/doctype/help_article/help_article.py
+++ b/frappe/website/doctype/help_article/help_article.py
@@@ -106,12 -106,10 +106,19 @@@ def get_list_context(context=None)
no_breadcrumbs=False,
introduction=introduction,
list_template="templates/includes/list/list.html" if category else None,
++<<<<<<< HEAD
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
+ if not category:
+ list_context["get_list"] = get_category_list
+
++=======
+ get_list=get_list if category else get_category_list,
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
++>>>>>>> b2c2f90cd33f88268af55019c057570ebb1d8943
return list_context
Conflicts detected for source commit: 5f5d46964b926ed9a5b702dfe485499a769123f4
diff --cc frappe/commands/site.py
index cea02b4321,e049babfa9..0000000000
--- a/frappe/commands/site.py
+++ b/frappe/commands/site.py
@@@ -572,7 -572,7 +572,11 @@@ def describe_database_table(context, do
def _extract_table_stats(doctype: str, columns: list[str]) -> dict:
++<<<<<<< HEAD
+ from frappe.utils import cstr, get_table_name
++=======
+ from frappe.utils import cint, cstr, get_table_name
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
def sql_bool(val):
return cstr(val).lower() in ("yes", "1", "true")
@@@ -612,7 -612,13 +616,17 @@@
if idx["Seq_in_index"] == 1:
update_cardinality(idx["Column_name"], idx["Cardinality"])
++<<<<<<< HEAD
+ total_rows = frappe.db.count(doctype)
++=======
+ total_rows = cint(
+ frappe.db.sql(
+ f"""select table_rows
+ from information_schema.tables
+ where table_name = 'tab{doctype}'"""
+ )[0][0]
+ )
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
# fetch accurate cardinality for columns by query. WARN: This can take a lot of time.
for column in columns:
diff --cc frappe/public/js/frappe/form/grid_row.js
index 8b0a93c12d,bd0806284e..0000000000
--- a/frappe/public/js/frappe/form/grid_row.js
+++ b/frappe/public/js/frappe/form/grid_row.js
@@@ -1130,8 -1130,8 +1130,13 @@@ export default class GridRow
let ignore_fieldtypes = ["Text", "Small Text", "Code", "Text Editor", "HTML Editor"];
if (field.$input) {
field.$input.on("keydown", function (e) {
++<<<<<<< HEAD
+ var { TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW].includes(e.which)) {
++=======
+ var { ESCAPE, TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW, ESCAPE].includes(e.which)) {
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
return;
}
diff --cc frappe/utils/data.py
index e3d892aa88,4df1a6cc51..0000000000
--- a/frappe/utils/data.py
+++ b/frappe/utils/data.py
@@@ -638,14 -638,14 +638,26 @@@ def get_quarter_ending
return date.strftime(DATE_FORMAT) if as_str else date
++<<<<<<< HEAD
++=======
@typing.overload
def get_year_ending(
dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
) -> datetime.date:
...
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
++@typing.overload
++def get_year_ending(
++ dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
++) -> datetime.date:
++ ...
++
++<<<<<<< HEAD
++=======
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
@typing.overload
def get_year_ending(dt: DateTimeLikeObject | None = None, as_str: Literal[True] = False) -> str:
...
@@@ -662,12 -662,12 +674,21 @@@ def get_year_ending(date: DateTimeLikeO
year_ending = add_to_date(next_year_start, days=-1)
return year_ending.strftime(DATE_FORMAT) if as_str else year_ending
++<<<<<<< HEAD
+
+def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++=======
+
+ def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+ ) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
If the given argument is already a `datetime.time` object, it is returned as is."""
if isinstance(time_str, datetime.datetime):
diff --cc frappe/website/doctype/blog_post/blog_post.py
index 0565ba1c5f,5e7eea754f..0000000000
--- a/frappe/website/doctype/blog_post/blog_post.py
+++ b/frappe/website/doctype/blog_post/blog_post.py
@@@ -164,7 -164,24 +164,28 @@@ class BlogPost(WebsiteGenerator)
]
context.guest_allowed = False if login_required else frappe.db.get_single_value("Blog Settings", "allow_guest_to_comment")
++<<<<<<< HEAD
+ context.show_sidebar = frappe.db.get_single_value("Blog Settings", "show_sidebar")
++=======
+ if frappe.db.get_single_value("Blog Settings", "show_sidebar"):
+ context.show_sidebar = True
+ context.sidebar_items = self.get_sidebar_items()
+
+ def get_sidebar_items(self):
+ def _get():
+ categories = frappe.get_all("Blog Category",
+ filters={"published": 1},
+ fields=["title", "route"],
+ order_by="title ASC"
+ )
+
+ for category in categories:
+ category.route = f"/{category.route}"
+
+ return categories
+
+ return frappe.cache.get_value("blog:category_sidebar", _get)
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
def fetch_cta(self):
if frappe.db.get_single_value("Blog Settings", "show_cta_in_blog", cache=True):
diff --cc frappe/website/doctype/help_article/help_article.py
index 27fb93bcd9,b34442e82b..0000000000
--- a/frappe/website/doctype/help_article/help_article.py
+++ b/frappe/website/doctype/help_article/help_article.py
@@@ -106,12 -106,10 +106,19 @@@ def get_list_context(context=None)
no_breadcrumbs=False,
introduction=introduction,
list_template="templates/includes/list/list.html" if category else None,
++<<<<<<< HEAD
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
+ if not category:
+ list_context["get_list"] = get_category_list
+
++=======
+ get_list=get_list if category else get_category_list,
+ row_template="website/doctype/help_article/templates/help_article_row.html" if category else "website/doctype/help_article/templates/help_article_category_row.html"
+ )
+
++>>>>>>> 5f5d46964b926ed9a5b702dfe485499a769123f4
return list_context
Merge request reports
Activity
added botbackport label
mentioned in commit 372ab37e
mentioned in commit 2c45b36e
Please register or sign in to reply