def update_event(obj, cleaned_data): assert isinstance(obj, MfCalendarEvent) """ методы по очистки кэша при обновлении события event_id - идентификатор события cleaned_data - форма данных """ logger = logging.getLogger('sancta_log') logger.info('сохранение события') #очистим кеш и информацию о событии if obj.id: cc.by_event_id(obj.id) cc.by_event_url(obj.url) if obj.function != cleaned_data['smart_function']: cc.by_smart_function(obj.function.smart_function) cc.by_event_url(cleaned_data['seo_url']) cc.by_smart_function(cleaned_data['smart_function']) if cleaned_data['add_article']: #если была добавлена статья article = MfSystemArticle.objects.get( pk=cleaned_data['add_article'] ) cc.by_article_url(article.url, article.site.id) cc.by_article_id(article.id, article.site.id) #чистим привязанные статьи if obj.id: for obj_art in obj.get_articles(): cc.by_article_url(obj_art.url, obj_art.site.id) cc.by_article_id(obj_art.id, obj_art.site.id) logger.info('save_model end')
def update_article(obj, cleaned_data={}): assert isinstance(obj, MfSystemArticle) if obj.id: # основные параметры cc.by_article_url(obj.url, obj.site.id) cc.by_article_id(obj.id, obj.site.id) # пройдемся по существующим тегам for tag in obj.tags.all(): cc.by_article_tag(tag.name, obj.site.id) # пройдемся по привязанным статьям parent_relateds = obj.get_relate_to() for rel_obj in parent_relateds: if rel_obj.created_class == 'MfCalendarEvent': event = rel_obj cc.by_smart_function(event.smart_function) cc.by_event_id(event.id) cc.by_event_url(event.url) # пройдемся по новым тегам if cleaned_data and cleaned_data['tags']: for tag in [ art_tag.strip() for art_tag in cleaned_data['tags'] if art_tag.strip() ]: cc.by_article_tag(tag, cleaned_data['site'].id)
def update_icon(obj, cleaned_data): # pylint: disable=W0613 assert isinstance(obj, MfCalendarIcon) if obj.id: parent_relateds = obj.get_relate_to() for rel_obj in parent_relateds: if rel_obj.created_class == 'MfCalendarEvent': event = rel_obj cc.by_event_id(event.id) cc.by_event_url(event.url) cc.by_smart_function(event.function.smart_function)