From 9f1f9881917f2a48672ff6056a20e3fa7e9c2fb2 Mon Sep 17 00:00:00 2001 From: Nazar Kotjuk Date: Mon, 23 Nov 2015 13:45:39 +0200 Subject: [PATCH] cache bugfix --- article/managers.py | 12 ++++---- country/manager.py | 20 ++++++------- emencia/django/newsletter/forms.py | 7 +++++ functions/models_methods.py | 28 +++++++++---------- .../management/commands/update_views_cache.py | 2 +- theme/manager.py | 24 ++++++++-------- 6 files changed, 50 insertions(+), 43 deletions(-) diff --git a/article/managers.py b/article/managers.py index ccea0c90..108d8b10 100644 --- a/article/managers.py +++ b/article/managers.py @@ -26,10 +26,10 @@ class ArticleManager(TranslationManager): model = self.model return self.language().filter(type=model.blog) - def main_page_news(self): + def main_page_news(self, cached=True): lang = translation.get_language() - key = 'main_page_news_%s'%lang - if key in cache: + key = 'main_page_news_%s' % lang + if cached and key in cache: cached_news = cache.get(key) return cached_news else: @@ -37,10 +37,10 @@ class ArticleManager(TranslationManager): cache.set(key, news, self.cache_time) return news - def main_page_blogs(self): + def main_page_blogs(self, cached=True): lang = translation.get_language() - key = 'main_page_blogs_%s'%lang - if key in cache: + key = 'main_page_blogs_%s' % lang + if cached and key in cache: cached_blogs = cache.get(key) return cached_blogs else: diff --git a/country/manager.py b/country/manager.py index c57ff98f..46e89c6e 100644 --- a/country/manager.py +++ b/country/manager.py @@ -14,11 +14,11 @@ class CountryManager(TranslationManager): except: return None - def expo_countries(self): + def expo_countries(self, cached=True): lang = translation.get_language() key = 'used_expo_countries_%s'%lang cached_countries = cache.get(key) - if cached_countries: + if cached and cached_countries: return cached_countries else: from exposition.models import Exposition @@ -27,11 +27,11 @@ class CountryManager(TranslationManager): cache.set(key, countries, self.cache_time) return countries - def expo_countries_with_count(self): + def expo_countries_with_count(self, cached=True): lang = translation.get_language() key = 'used_expo_countries_count_%s'%lang cached_countries = cache.get(key) - if cached_countries: + if cached and cached_countries: return cached_countries else: @@ -50,11 +50,11 @@ class CountryManager(TranslationManager): cache.set(key, countries, self.cache_time) return countries - def conference_countries_with_count(self): + def conference_countries_with_count(self, cached=True): lang = translation.get_language() key = 'used_conference_countries_count_%s'%lang cached_countries = cache.get(key) - if cached_countries: + if cached and cached_countries: return cached_countries else: @@ -73,11 +73,11 @@ class CountryManager(TranslationManager): cache.set(key, countries, self.cache_time) return countries - def conference_countries(self): + def conference_countries(self, cached=True): lang = translation.get_language() key = 'used_conference_countries_%s'%lang cached_countries = cache.get(key) - if cached_countries: + if cached and cached_countries: return cached_countries else: from conference.models import Conference @@ -97,13 +97,13 @@ class CountryManager(TranslationManager): class AreaManager(TranslationManager): cache_time = 55 - def all_sorted(self): + def all_sorted(self, cached=True): """ return list, not queryset """ lang = translation.get_language() key = 'country_area_all_%s' % lang - if key in cache: + if cached and key in cache: result = cache.get(key) else: model = self.model diff --git a/emencia/django/newsletter/forms.py b/emencia/django/newsletter/forms.py index 066fabbc..1aba6f53 100644 --- a/emencia/django/newsletter/forms.py +++ b/emencia/django/newsletter/forms.py @@ -159,15 +159,22 @@ class ContactFilterForm(forms.Form): if self.cleaned_data.get('not_active'): title = ' not active ' + title qs = qs.filter(activated=False) + else: + qs = qs.filter(activated=True) if self.cleaned_data.get('not_valid'): title = 'not valid e-mail ' + title qs = qs.filter(valid=False) + else: + qs = qs.filter(valid=True) + if self.cleaned_data.get("created_from"): qs = qs.filter(creation_date__gte=datetime.strptime(self.cleaned_data['created_from'], "%d.%m.%Y")) if self.cleaned_data.get("created_to"): qs = qs.filter(creation_date__lt=datetime.strptime(self.cleaned_data['created_to'], "%d.%m.%Y")) if self.cleaned_data.get('not_subscriber'): qs = qs.filter(subscriber=False) + else: + qs = qs.filter(subscriber=True) qs = qs.distinct() return qs, title diff --git a/functions/models_methods.py b/functions/models_methods.py index be30179f..0877eb66 100644 --- a/functions/models_methods.py +++ b/functions/models_methods.py @@ -25,10 +25,10 @@ class ExpoManager(TranslationManager): except: return None - def expo_main(self): + def expo_main(self, cached=True): lang = translation.get_language() key = 'expo_main_page_key_%s'%lang - if key in cache: + if cached and key in cache: result = cache.get(key) else: result = list(self.language(lang). @@ -40,10 +40,10 @@ class ExpoManager(TranslationManager): return result - def conf_main(self): + def conf_main(self, cached=True): lang = translation.get_language() key = 'conf_main_page_key_%s'%lang - if key in cache: + if cached and key in cache: result = cache.get(key) else: result = list(self.language(lang). @@ -71,10 +71,10 @@ class CityManager(TranslationManager): cities_id = [item['city_id'] for item in Exposition.objects.values('city_id').distinct()] return self.language().filter(id__in=cities_id) - def expo_cities(self): + def expo_cities(self, cached=True): lang = translation.get_language() key = 'used_expo_cities_%s' % lang - if key in cache: + if cached and key in cache: cached_cities = cache.get(key) return cached_cities else: @@ -84,10 +84,10 @@ class CityManager(TranslationManager): cache.set(key, cities, self.cache_time) return cities - def expo_cities_with_count(self): + def expo_cities_with_count(self, cached=True): lang = translation.get_language() key = 'used_expo_cities_count_%s' % lang - if key in cache: + if cached and key in cache: cached_cities = cache.get(key) return cached_cities else: @@ -106,10 +106,10 @@ class CityManager(TranslationManager): cache.set(key, cities, self.cache_time) return cities - def conference_cities_with_count(self): + def conference_cities_with_count(self, cached=True): lang = translation.get_language() key = 'used_conference_cities_count_%s' % lang - if key in cache: + if cached and key in cache: cached_cities = cache.get(key) return cached_cities else: @@ -129,10 +129,10 @@ class CityManager(TranslationManager): cache.set(key, cities, self.cache_time) return cities - def conference_cities(self): + def conference_cities(self, cached=True): lang = translation.get_language() key = 'used_conference_cities_%s'%lang - if key in cache: + if cached and key in cache: cached_cities = cache.get(key) return cached_cities else: @@ -142,13 +142,13 @@ class CityManager(TranslationManager): cache.set(key, cities, self.cache_time) return cities - def cities(self): + def cities(self, cached=True): """ not finished """ lang = translation.get_language() key = 'used_cities_%s'%lang - if key in cache: + if cached and key in cache: cached_cities = cache.get(key) return cached_cities else: diff --git a/settings/management/commands/update_views_cache.py b/settings/management/commands/update_views_cache.py index 15c16eb7..1a4577ce 100644 --- a/settings/management/commands/update_views_cache.py +++ b/settings/management/commands/update_views_cache.py @@ -44,5 +44,5 @@ class Command(BaseCommand): key = k % lang print(key) - result = func() + result = func(cached=False) cache.set(key, result, CACHE_TIME) \ No newline at end of file diff --git a/theme/manager.py b/theme/manager.py index f764c62c..832a2c61 100644 --- a/theme/manager.py +++ b/theme/manager.py @@ -26,11 +26,11 @@ class ThemeActiveManager(TranslationManager): Model = self.model return list(self.language().filter(types=Model.types.conference)[:6]) - def expo_themes(self): + def expo_themes(self, cached=True): lang = translation.get_language() key = 'used_expo_themes_%s'%lang cached_themes = cache.get(key) - if cached_themes: + if cached and cached_themes: return cached_themes else: from exposition.models import Exposition @@ -39,11 +39,11 @@ class ThemeActiveManager(TranslationManager): cache.set(key, themes, 300) return themes - def expo_themes_with_count(self): + def expo_themes_with_count(self, cached=True): lang = translation.get_language() key = 'used_expo_themes_count_%s'%lang cached_themes = cache.get(key) - if cached_themes: + if cached and cached_themes: return cached_themes else: @@ -57,11 +57,11 @@ class ThemeActiveManager(TranslationManager): cache.set(key, themes, self.cache_time) return themes - def conference_themes_with_count(self): + def conference_themes_with_count(self, cached=True): lang = translation.get_language() key = 'used_conference_themes_count_%s'%lang cached_themes = cache.get(key) - if cached_themes: + if cached and cached_themes: return cached_themes else: from conference.models import Conference @@ -102,11 +102,11 @@ class TagActiveManager(TranslationManager): cache.set(key, tags, 300) return tags - def conference_tags(self): + def conference_tags(self, cached=True): lang = translation.get_language() key = 'used_conference_tags_%s'%lang cached_tags = cache.get(key) - if cached_tags: + if cached and cached_tags: return cached_tags else: from conference.models import Conference @@ -119,11 +119,11 @@ class TagActiveManager(TranslationManager): cache.set(key, tags, self.cache_time) return tags - def expo_themes_with_count(self): + def expo_themes_with_count(self, cached=True): lang = translation.get_language() key = 'used_expo_tags_count_%s'%lang cached_tags = cache.get(key) - if cached_tags: + if cached and cached_tags: return cached_tags else: @@ -137,11 +137,11 @@ class TagActiveManager(TranslationManager): cache.set(key, tags, self.cache_time) return tags - def conference_themes_with_count(self): + def conference_themes_with_count(self, cached=True): lang = translation.get_language() key = 'used_conference_tags_count_%s'%lang cached_tags = cache.get(key) - if cached_tags: + if cached and cached_tags: return cached_tags else: from conference.models import Conference