Skip to content
Snippets Groups Projects
Verified Commit 214a1385 authored by jindra12's avatar jindra12
Browse files

Displays correct url and can lookup fake pages

parent ce5bdf7d
Branches
No related tags found
2 merge requests!816Release,!801Prepare basic shared tags
Pipeline #13766 passed
...@@ -271,7 +271,9 @@ class ArticlesMixin(models.Model): ...@@ -271,7 +271,9 @@ class ArticlesMixin(models.Model):
content_panels = Page.content_panels + [FieldPanel("shared_tags")] content_panels = Page.content_panels + [FieldPanel("shared_tags")]
def append_all_shared_articles(self, previous_query: models.QuerySet | None): def append_all_shared_articles(
self, previous_query: models.QuerySet | None = None, filter=None
):
""" """
To prevent circular deps, we get class models during runtime To prevent circular deps, we get class models during runtime
""" """
...@@ -335,35 +337,17 @@ class ArticlesMixin(models.Model): ...@@ -335,35 +337,17 @@ class ArticlesMixin(models.Model):
}, },
) )
districtArticleQuery: models.QuerySet = DistrictArticlePage.objects district_article_query: models.QuerySet = DistrictArticlePage.objects
uniwebArticlePageQuery: models.QuerySet = UniwebArticlePage.objects uniweb_article_query: models.QuerySet = UniwebArticlePage.objects
mainArticlePageQuery: models.QuerySet = MainArticlePage.objects main_article_query: models.QuerySet = MainArticlePage.objects
district_by_slug = ( apply_additional_filter = (
( lambda query: filter(query) if filter is not None else query
districtArticleQuery.filter(
shared_tags__slug__in=self.shared_tags.values_list(
"slug", flat=True
)
)
)
.live()
.specific()
)
uniweb_by_slug = (
(
uniwebArticlePageQuery.filter(
shared_tags__slug__in=self.shared_tags.values_list(
"slug", flat=True
)
)
)
.live()
.specific()
) )
main_by_slug = (
create_query_by_slug = lambda query: apply_additional_filter(
( (
mainArticlePageQuery.filter( query.filter(
shared_tags__slug__in=self.shared_tags.values_list( shared_tags__slug__in=self.shared_tags.values_list(
"slug", flat=True "slug", flat=True
) )
...@@ -373,6 +357,18 @@ class ArticlesMixin(models.Model): ...@@ -373,6 +357,18 @@ class ArticlesMixin(models.Model):
.specific() .specific()
) )
district_by_slug = create_query_by_slug(district_article_query)
if filter is not None:
district_by_slug = filter(district_by_slug)
uniweb_by_slug = create_query_by_slug(uniweb_article_query)
if filter is not None:
uniweb_by_slug = filter(uniweb_by_slug)
main_by_slug = create_query_by_slug(main_article_query)
if filter is not None:
main_by_slug = filter(main_by_slug)
results = ( results = (
main_by_slug.values( main_by_slug.values(
**main_fields, **main_fields,
...@@ -454,11 +450,13 @@ class ArticlesMixin(models.Model): ...@@ -454,11 +450,13 @@ class ArticlesMixin(models.Model):
) )
def get_article_page_by_slug(self, slug: str): def get_article_page_by_slug(self, slug: str):
articles = self.append_all_shared_articles() articles = self.append_all_shared_articles(
return articles.filter(page_ptr__path=slug).first() filter=lambda query: query.filter(slug=slug)
)
return articles[0]
def setup_article_page_context(self, request): def setup_article_page_context(self, request):
slug = request.GET.get("slug", "") slug = request.GET.get("sdilene", "")
return self.get_article_page_by_slug(slug).serve(request) return self.get_article_page_by_slug(slug).serve(request)
def get_search_tags_params(self, site_article_ids: list): def get_search_tags_params(self, site_article_ids: list):
......
...@@ -7,10 +7,18 @@ ...@@ -7,10 +7,18 @@
itemscope="" itemscope=""
> >
{% if article.shared %}
<link itemprop="mainEntityOfPage" href="{{ page.url }}sdilene?sdilene={{ article.slug|urlencode }}">
{% else %}
<link itemprop="mainEntityOfPage" href="{{ article.url }}"> <link itemprop="mainEntityOfPage" href="{{ article.url }}">
{% endif %}
<div class="article-card-cover"> <div class="article-card-cover">
{% if article.shared %}
<a href="{{ page.url }}sdilene?sdilene={{ article.slug|urlencode }}" rel="noindex" itemprop="image" itemtype="http://schema.org/ImageObject" itemscope="">
{% else %}
<a href="{{ article.url }}" itemprop="image" itemtype="http://schema.org/ImageObject" itemscope=""> <a href="{{ article.url }}" itemprop="image" itemtype="http://schema.org/ImageObject" itemscope="">
{% endif %}
{% if article.thumb_image %} {% if article.thumb_image %}
{% image article.thumb_image fill-356x192 as img %} {% image article.thumb_image fill-356x192 as img %}
{% image article.thumb_image fill-714x384 as img_2x %} {% image article.thumb_image fill-714x384 as img_2x %}
...@@ -64,7 +72,11 @@ ...@@ -64,7 +72,11 @@
</div> </div>
<div class="card__body article-card__body{% if article.is_black %} text-white{% endif %}"> <div class="card__body article-card__body{% if article.is_black %} text-white{% endif %}">
{% if article.shared %}
<a href="{{ page.url }}sdilene?sdilene={{ article.slug|urlencode }}" rel="noindex">
{% else %}
<a href="{{ article.url }}"> <a href="{{ article.url }}">
{% endif %}
<h1 class="card-headline mb-4"> <h1 class="card-headline mb-4">
{{ article.title }} {{ article.title }}
</h1> </h1>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment