Fix markup cache invalidation
This commit is contained in:
parent
c6060b6707
commit
5ca816a2ae
|
@ -6,7 +6,7 @@ from srht.database import db
|
|||
from srht.oauth import current_user, loginrequired
|
||||
from srht.validation import Validation
|
||||
from todosrht.access import get_tracker, get_ticket
|
||||
from todosrht.filters import invalidate_markup_cache, render_markup
|
||||
from todosrht.filters import render_markup
|
||||
from todosrht.search import find_usernames
|
||||
from todosrht.tickets import add_comment, mark_seen, assign, unassign
|
||||
from todosrht.tickets import get_participant_for_user
|
||||
|
@ -224,9 +224,6 @@ def ticket_edit_POST(owner, name, ticket_id):
|
|||
ticket.title = title
|
||||
ticket.description = desc
|
||||
db.session.commit()
|
||||
|
||||
invalidate_markup_cache(ticket)
|
||||
|
||||
return redirect(ticket_url(ticket))
|
||||
|
||||
@ticket.route("/<owner>/<name>/<int:ticket_id>/add_label", methods=["POST"])
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import hashlib
|
||||
import json
|
||||
import re
|
||||
from datetime import timedelta
|
||||
from functools import wraps
|
||||
from jinja2.utils import Markup, escape
|
||||
from srht.flask import icon, csrf_token
|
||||
from srht.flask import icon, csrf_token, date_handler
|
||||
from srht.markdown import markdown, SRHT_MARKDOWN_VERSION
|
||||
from srht.redis import redis
|
||||
from todosrht import urls
|
||||
|
@ -13,7 +15,9 @@ def cache_rendered_markup(func):
|
|||
@wraps(func)
|
||||
def wrap(obj):
|
||||
class_name = obj.__class__.__name__
|
||||
key = f"todo.sr.ht:cache_rendered_markup:{class_name}:{obj.id}:v{SRHT_MARKDOWN_VERSION}"
|
||||
sha = hashlib.sha1()
|
||||
sha.update(json.dumps(obj.to_dict(), default=date_handler).encode())
|
||||
key = f"todo.sr.ht:cache_rendered_markup:{class_name}:{sha.hexdigest()}:v{SRHT_MARKDOWN_VERSION}"
|
||||
value = redis.get(key)
|
||||
if value:
|
||||
return Markup(value.decode())
|
||||
|
@ -68,11 +72,6 @@ def render_comment(comment):
|
|||
def render_ticket_description(ticket):
|
||||
return render_markup(ticket.tracker, ticket.description)
|
||||
|
||||
def invalidate_markup_cache(obj):
|
||||
class_name = obj.__class__.__name__
|
||||
key = f"todo.sr.ht:cache_rendered_markup:{class_name}:{obj.id}"
|
||||
redis.delete(key)
|
||||
|
||||
def label_badge(label, cls="", remove_from_ticket=None, terms=None):
|
||||
"""Return HTML markup rendering a label badge.
|
||||
|
||||
|
|
Loading…
Reference in New Issue