Example #1
0
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')
Example #2
0
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)
Example #3
0
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)