Пример #1
0
def delete_topic_alias_action(user_id, topic_id, alias):
    """ return topic_id(int) if succeed, otherwise return error message"""
    old_alias_set = Topic_Alias.objects.filter(topic__id=topic_id, alias=alias)
    if old_alias_set:
        old_alias = old_alias_set[0]
 
        refs = Topic_Revision.objects.filter(topic__id=topic_id, operation='aa', alias=old_alias.alias).order_by('-pk')
        if refs:
            reference = refs[0]
            if reference.user_id != user_id:
                notification = Notification(operation='da')
                notification.user_id = reference.user_id
                notification.related_user_id = user_id
                notification.topic_id = topic_id
                notification.incr_count_in_profile()
                notification.save()
                update_user_topic_fame(topic_id, user_id, reference.user_id)
        else:
            reference = None
            update_user_topic_fame(topic_id, user_id)
            
        topic_revision = Topic_Revision(operation='da', reference=reference)
        topic_revision.topic_id = topic_id
        topic_revision.alias = old_alias.alias
        topic_revision.user_id = user_id
        topic_revision.save()
        
        old_alias.delete()
        return topic_id
    else:
        return '此别名不存在' 
Пример #2
0
def add_topic_alias_action(user_id, topic_id, topic_name, alias):
    """return topic_alias.id(long) if succeed, otherwise return error message"""
    if topic_name == alias:
        return '别名不能与话题名相同'
    if alias and SensitiveWord.objects.filter(name=alias, disabled=False):
        return '根据当地法律,此别名不能被添加'
    old_aliases = Topic_Alias.objects.filter(topic__id=topic_id, alias=alias)
    if old_aliases:
        return '此别名已经添加到此话题'
    else:
        topic_alias = Topic_Alias(alias=alias)
        topic_alias.topic_id = topic_id
        topic_alias.save()
    
        refs = Topic_Revision.objects.filter(topic__id=topic_id, operation='da', alias=topic_alias.alias).order_by('-pk')
        if refs:
            reference = refs[0]
            if reference.user_id != user_id:
                notification = Notification(operation='aa')
                notification.user_id = reference.user_id
                notification.related_user_id = user_id
                notification.topic_id = topic_id
                notification.incr_count_in_profile()
                notification.save()
                update_user_topic_fame(topic_id, user_id, reference.user_id)
        else:
            reference = None
            update_user_topic_fame(topic_id, user_id)
            
        topic_revision = Topic_Revision(operation='aa', reference=reference)
        topic_revision.topic_id = topic_id
        topic_revision.alias = topic_alias.alias
        topic_revision.user_id = user_id
        topic_revision.save()
        return topic_alias.id