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 '此别名不存在'
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