Reformat using black
This commit is contained in:
parent
efee4ad081
commit
a87fb49918
221 changed files with 19127 additions and 7310 deletions
141
judge/signals.py
141
judge/signals.py
|
@ -9,8 +9,21 @@ from django.db.models.signals import post_delete, post_save
|
|||
from django.dispatch import receiver
|
||||
|
||||
from .caching import finished_submission
|
||||
from .models import BlogPost, Comment, Contest, ContestSubmission, EFFECTIVE_MATH_ENGINES, Judge, Language, License, \
|
||||
MiscConfig, Organization, Problem, Profile, Submission
|
||||
from .models import (
|
||||
BlogPost,
|
||||
Comment,
|
||||
Contest,
|
||||
ContestSubmission,
|
||||
EFFECTIVE_MATH_ENGINES,
|
||||
Judge,
|
||||
Language,
|
||||
License,
|
||||
MiscConfig,
|
||||
Organization,
|
||||
Problem,
|
||||
Profile,
|
||||
Submission,
|
||||
)
|
||||
|
||||
|
||||
def get_pdf_path(basename):
|
||||
|
@ -27,75 +40,109 @@ def unlink_if_exists(file):
|
|||
|
||||
@receiver(post_save, sender=Problem)
|
||||
def problem_update(sender, instance, **kwargs):
|
||||
if hasattr(instance, '_updating_stats_only'):
|
||||
if hasattr(instance, "_updating_stats_only"):
|
||||
return
|
||||
|
||||
cache.delete_many([
|
||||
make_template_fragment_key('submission_problem', (instance.id,)),
|
||||
make_template_fragment_key('problem_feed', (instance.id,)),
|
||||
'problem_tls:%s' % instance.id, 'problem_mls:%s' % instance.id,
|
||||
])
|
||||
cache.delete_many([make_template_fragment_key('problem_html', (instance.id, engine, lang))
|
||||
for lang, _ in settings.LANGUAGES for engine in EFFECTIVE_MATH_ENGINES])
|
||||
cache.delete_many([make_template_fragment_key('problem_authors', (instance.id, lang))
|
||||
for lang, _ in settings.LANGUAGES])
|
||||
cache.delete_many(['generated-meta-problem:%s:%d' % (lang, instance.id) for lang, _ in settings.LANGUAGES])
|
||||
cache.delete_many(
|
||||
[
|
||||
make_template_fragment_key("submission_problem", (instance.id,)),
|
||||
make_template_fragment_key("problem_feed", (instance.id,)),
|
||||
"problem_tls:%s" % instance.id,
|
||||
"problem_mls:%s" % instance.id,
|
||||
]
|
||||
)
|
||||
cache.delete_many(
|
||||
[
|
||||
make_template_fragment_key("problem_html", (instance.id, engine, lang))
|
||||
for lang, _ in settings.LANGUAGES
|
||||
for engine in EFFECTIVE_MATH_ENGINES
|
||||
]
|
||||
)
|
||||
cache.delete_many(
|
||||
[
|
||||
make_template_fragment_key("problem_authors", (instance.id, lang))
|
||||
for lang, _ in settings.LANGUAGES
|
||||
]
|
||||
)
|
||||
cache.delete_many(
|
||||
[
|
||||
"generated-meta-problem:%s:%d" % (lang, instance.id)
|
||||
for lang, _ in settings.LANGUAGES
|
||||
]
|
||||
)
|
||||
|
||||
for lang, _ in settings.LANGUAGES:
|
||||
unlink_if_exists(get_pdf_path('%s.%s.pdf' % (instance.code, lang)))
|
||||
unlink_if_exists(get_pdf_path("%s.%s.pdf" % (instance.code, lang)))
|
||||
|
||||
|
||||
@receiver(post_save, sender=Profile)
|
||||
def profile_update(sender, instance, **kwargs):
|
||||
if hasattr(instance, '_updating_stats_only'):
|
||||
if hasattr(instance, "_updating_stats_only"):
|
||||
return
|
||||
|
||||
cache.delete_many([make_template_fragment_key('user_about', (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES] +
|
||||
[make_template_fragment_key('org_member_count', (org_id,))
|
||||
for org_id in instance.organizations.values_list('id', flat=True)])
|
||||
cache.delete_many(
|
||||
[
|
||||
make_template_fragment_key("user_about", (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES
|
||||
]
|
||||
+ [
|
||||
make_template_fragment_key("org_member_count", (org_id,))
|
||||
for org_id in instance.organizations.values_list("id", flat=True)
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@receiver(post_save, sender=Contest)
|
||||
def contest_update(sender, instance, **kwargs):
|
||||
if hasattr(instance, '_updating_stats_only'):
|
||||
if hasattr(instance, "_updating_stats_only"):
|
||||
return
|
||||
|
||||
cache.delete_many(['generated-meta-contest:%d' % instance.id] +
|
||||
[make_template_fragment_key('contest_html', (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES])
|
||||
cache.delete_many(
|
||||
["generated-meta-contest:%d" % instance.id]
|
||||
+ [
|
||||
make_template_fragment_key("contest_html", (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@receiver(post_save, sender=License)
|
||||
def license_update(sender, instance, **kwargs):
|
||||
cache.delete(make_template_fragment_key('license_html', (instance.id,)))
|
||||
cache.delete(make_template_fragment_key("license_html", (instance.id,)))
|
||||
|
||||
|
||||
@receiver(post_save, sender=Language)
|
||||
def language_update(sender, instance, **kwargs):
|
||||
cache.delete_many([make_template_fragment_key('language_html', (instance.id,)),
|
||||
'lang:cn_map'])
|
||||
cache.delete_many(
|
||||
[make_template_fragment_key("language_html", (instance.id,)), "lang:cn_map"]
|
||||
)
|
||||
|
||||
|
||||
@receiver(post_save, sender=Judge)
|
||||
def judge_update(sender, instance, **kwargs):
|
||||
cache.delete(make_template_fragment_key('judge_html', (instance.id,)))
|
||||
cache.delete(make_template_fragment_key("judge_html", (instance.id,)))
|
||||
|
||||
|
||||
@receiver(post_save, sender=Comment)
|
||||
def comment_update(sender, instance, **kwargs):
|
||||
cache.delete('comment_feed:%d' % instance.id)
|
||||
cache.delete("comment_feed:%d" % instance.id)
|
||||
|
||||
|
||||
@receiver(post_save, sender=BlogPost)
|
||||
def post_update(sender, instance, **kwargs):
|
||||
cache.delete_many([
|
||||
make_template_fragment_key('post_summary', (instance.id,)),
|
||||
'blog_slug:%d' % instance.id,
|
||||
'blog_feed:%d' % instance.id,
|
||||
])
|
||||
cache.delete_many([make_template_fragment_key('post_content', (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES])
|
||||
cache.delete_many(
|
||||
[
|
||||
make_template_fragment_key("post_summary", (instance.id,)),
|
||||
"blog_slug:%d" % instance.id,
|
||||
"blog_feed:%d" % instance.id,
|
||||
]
|
||||
)
|
||||
cache.delete_many(
|
||||
[
|
||||
make_template_fragment_key("post_content", (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@receiver(post_delete, sender=Submission)
|
||||
|
@ -112,21 +159,31 @@ def contest_submission_delete(sender, instance, **kwargs):
|
|||
|
||||
@receiver(post_save, sender=Organization)
|
||||
def organization_update(sender, instance, **kwargs):
|
||||
cache.delete_many([make_template_fragment_key('organization_html', (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES])
|
||||
cache.delete_many(
|
||||
[
|
||||
make_template_fragment_key("organization_html", (instance.id, engine))
|
||||
for engine in EFFECTIVE_MATH_ENGINES
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
_misc_config_i18n = [code for code, _ in settings.LANGUAGES]
|
||||
_misc_config_i18n.append('')
|
||||
_misc_config_i18n.append("")
|
||||
|
||||
|
||||
@receiver(post_save, sender=MiscConfig)
|
||||
def misc_config_update(sender, instance, **kwargs):
|
||||
cache.delete_many(['misc_config:%s:%s:%s' % (domain, lang, instance.key.split('.')[0])
|
||||
for lang in _misc_config_i18n
|
||||
for domain in Site.objects.values_list('domain', flat=True)])
|
||||
cache.delete_many(
|
||||
[
|
||||
"misc_config:%s:%s:%s" % (domain, lang, instance.key.split(".")[0])
|
||||
for lang in _misc_config_i18n
|
||||
for domain in Site.objects.values_list("domain", flat=True)
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@receiver(post_save, sender=ContestSubmission)
|
||||
def contest_submission_update(sender, instance, **kwargs):
|
||||
Submission.objects.filter(id=instance.submission_id).update(contest_object_id=instance.participation.contest_id)
|
||||
Submission.objects.filter(id=instance.submission_id).update(
|
||||
contest_object_id=instance.participation.contest_id
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue