~linuxgoose/bocpress

24df4b02a220bbdb59b1e19a5db8f49119de9f74 — Jordan Robinson 2 months ago 6eda622
fix tags with hyphen not working on fitler
2 files changed, 9 insertions(+), 8 deletions(-)

M main/models.py
M main/views/general.py
M main/models.py => main/models.py +6 -0
@@ 310,6 310,12 @@ class Post(models.Model):
            return f"//{self.owner.custom_domain}{path}"
        else:
            return self.get_absolute_url()
        
    def save(self, *args, **kwargs):
        if self.tags:
            cleaned_tags = [t.strip() for t in self.tags.split(",") if t.strip()]
            self.tags = ",".join(cleaned_tags)
        super().save(*args, **kwargs)

    def __str__(self):
        return self.title

M main/views/general.py => main/views/general.py +3 -8
@@ 3,6 3,7 @@ import uuid
from collections import defaultdict
from datetime import datetime, timedelta
from urllib.parse import urlparse
import re

import stripe
from django.db.models import Q


@@ 174,10 175,7 @@ def post_list_filter(request, tag = None):
        if models.User.objects.filter(username=request.subdomain).exists():
            drafts = []
            if request.user.is_authenticated and request.user == request.blog_user:
                posts = models.Post.objects.filter(Q(tags__iexact=tag) | 
                                                   Q(tags__startswith=f"{tag},") | 
                                                   Q(tags__endswith=f",{tag}") | 
                                                   Q(tags__contains=f",{tag},"),owner=request.blog_user).defer(
                posts = models.Post.objects.filter(Q(tags__regex=rf"(^|,){re.escape(tag)}(,|$)"),owner=request.blog_user).defer(
                    "body",
                )
                drafts = models.Post.objects.filter(


@@ 188,10 186,7 @@ def post_list_filter(request, tag = None):
            else:
                models.AnalyticPage.objects.create(user=request.blog_user, path="index")
                posts = models.Post.objects.filter(
                    Q(tags__iexact=tag) | 
                    Q(tags__startswith=f"{tag},") | 
                    Q(tags__endswith=f",{tag}") | 
                    Q(tags__contains=f",{tag},"),
                    Q(tags__regex=rf"(^|,){re.escape(tag)}(,|$)"),
                    owner=request.blog_user,
                    published_at__isnull=False,
                    published_at__lte=timezone.now().date(),