|
@@ -20,10 +20,10 @@ from django.views.decorators.csrf import csrf_exempt
|
|
|
from django.utils.decorators import method_decorator
|
|
|
from object.ResponseObject import ResponseObject
|
|
|
from django.contrib.auth.hashers import make_password, check_password
|
|
|
-from model.models import UserModel, LangSetModel, LangAreaModel, LangKeyModel, LangValModel
|
|
|
+from model.models import UserModel, LangSetModel, LangAreaModel, LangKeyModel, LangValModel, LangPermModel
|
|
|
import time
|
|
|
from object.TokenObject import TokenObject
|
|
|
-
|
|
|
+from django.db.models import Q
|
|
|
|
|
|
class LangWordView(TemplateView):
|
|
|
def post(self, request, *args, **kwargs):
|
|
@@ -59,6 +59,8 @@ class LangWordView(TemplateView):
|
|
|
# search index table
|
|
|
elif operation == 'query':
|
|
|
return self.do_query(request_dict, response, userID)
|
|
|
+ elif operation == 'reset':
|
|
|
+ return self.do_reset(request_dict, response, userID)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
else:
|
|
@@ -83,7 +85,7 @@ class LangWordView(TemplateView):
|
|
|
lk = LangKeyModel.objects.create(**lang_key_dict)
|
|
|
for w in word_arr:
|
|
|
LangValModel.objects.create(la_id=w['la_id'], lk_id=lk.id, addTime=nowTime, updTime=nowTime,
|
|
|
- word_val=w['val'])
|
|
|
+ word_val=w['val'], status=1)
|
|
|
|
|
|
except Exception as e:
|
|
|
print(repr(e))
|
|
@@ -107,6 +109,7 @@ class LangWordView(TemplateView):
|
|
|
old_word_key = request_dict.get('old_word_key', None)
|
|
|
word_key = request_dict.get('word_key', None)
|
|
|
word_arr = request_dict.get('word_arr', None)
|
|
|
+ status = request_dict.get('status', 0)
|
|
|
# from var_dump import var_dump
|
|
|
# var_dump(request_dict)
|
|
|
lk = LangKeyModel.objects.filter(word_key=old_word_key)
|
|
@@ -119,16 +122,24 @@ class LangWordView(TemplateView):
|
|
|
lk.update(word_key=word_key, updTime=nowTime)
|
|
|
else:
|
|
|
lk.update(updTime=nowTime)
|
|
|
+ #如果是管理员,是status的值为1,表示记录为新增
|
|
|
+ user = UserModel.objects.get(id=userID)
|
|
|
+ lang_perm_ql = LangPermModel.objects.filter(user__id=userID).values_list('lang__lang', flat=True)
|
|
|
+ lang_perm_ls = list(lang_perm_ql)
|
|
|
+ print(lang_perm_ls)
|
|
|
+
|
|
|
+ if user.role_id == 'admin':
|
|
|
+ status = 1
|
|
|
for w in word_arr:
|
|
|
lv_qs = LangValModel.objects.filter(lk__id=lk_id, la__lang=w)
|
|
|
- if lv_qs.exists():
|
|
|
- lv_qs.update(updTime=nowTime, word_val=word_arr[w])
|
|
|
+ if lv_qs.exists() and w in lang_perm_ql:
|
|
|
+ lv_qs.update(updTime=nowTime, word_val=word_arr[w], status=status)
|
|
|
else:
|
|
|
la_qs = LangAreaModel.objects.filter(lang=w)
|
|
|
if la_qs.exists():
|
|
|
la_id = la_qs[0].id
|
|
|
LangValModel.objects.create(la_id=la_id, lk_id=lk_id, addTime=nowTime, updTime=nowTime,
|
|
|
- word_val=word_arr[w])
|
|
|
+ word_val=word_arr[w], status=status)
|
|
|
return response.json(0)
|
|
|
else:
|
|
|
return response.json(404)
|
|
@@ -169,9 +180,7 @@ class LangWordView(TemplateView):
|
|
|
lk_qs = lk_qs.filter(langvalmodel__word_val__contains=searchVal, langvalmodel__la__lang=searchKey)
|
|
|
count = lk_qs.count()
|
|
|
# lk_qs = lk_qs[(page - 1) * line:page * line].values_list('word_key', flat=True)
|
|
|
- # 时间排序
|
|
|
-
|
|
|
- if orderByupdate == "1":
|
|
|
+ if orderByupdate == 1:
|
|
|
lk_qs = lk_qs.order_by('updTime')
|
|
|
else:
|
|
|
lk_qs = lk_qs.order_by('-updTime')
|
|
@@ -182,9 +191,18 @@ class LangWordView(TemplateView):
|
|
|
k_list.append(lk['word_key'])
|
|
|
lw_dict[lk['word_key']] = {'updTime': lk['updTime']}
|
|
|
lv_qs = LangValModel.objects.filter(lk__word_key__in=k_list, la__id__in=lang_set_list). \
|
|
|
- values('word_val', 'la__id', 'la__lang', 'lk__word_key', 'lk__id')
|
|
|
+ values('word_val', 'la__id', 'la__lang', 'lk__word_key', 'lk__id', 'status')
|
|
|
+ user = UserModel.objects.get(id=userID)
|
|
|
+ lang_perm_ql = LangPermModel.objects.filter(user__id=userID).values_list('lang__lang', flat=True)
|
|
|
+ lang_perm_ls = list(lang_perm_ql)
|
|
|
for lv in lv_qs:
|
|
|
- lw_dict[lv['lk__word_key']][lv['la__lang']] = lv['word_val']
|
|
|
+ lang = lv['la__lang']
|
|
|
+ # print('lang=%s' % lang)
|
|
|
+ lw_dict[lv['lk__word_key']][lang] = lv['word_val']
|
|
|
+ if user.role_id == 'admin':
|
|
|
+ lw_dict[lv['lk__word_key']]['status'] = 0
|
|
|
+ elif lang in lang_perm_ls:
|
|
|
+ lw_dict[lv['lk__word_key']]['status'] = lv['status']
|
|
|
res = {
|
|
|
'la_list': list(la_qs),
|
|
|
'lw_dict': lw_dict,
|
|
@@ -195,3 +213,27 @@ class LangWordView(TemplateView):
|
|
|
return response.json(0, res)
|
|
|
else:
|
|
|
return response.json(444, 'page,line')
|
|
|
+
|
|
|
+ def do_reset(self, request_dict, response, userID):
|
|
|
+
|
|
|
+ word_key = request_dict.get('word_key', None)
|
|
|
+ if word_key:
|
|
|
+ word_key_list = word_key.split(',')
|
|
|
+
|
|
|
+ #获取该用户可以修改的语种
|
|
|
+ lp_qs = LangPermModel.objects.filter(user_id=userID).values_list('lang__id')
|
|
|
+ lq_list = list(lp_qs)
|
|
|
+ # ls_qs = LangSetModel.objects.filter(user_id=userID, lang_id__in=lq_list).values_list('lang__id')
|
|
|
+ # ls_list = list(ls_qs)
|
|
|
+ lk = LangKeyModel.objects.filter(word_key__in=word_key_list).values_list('id')
|
|
|
+ lv_qs = LangValModel.objects.filter(Q(lk_id__in=lk) & ~Q(status=0) & Q(la_id__in=lq_list))
|
|
|
+ print(lv_qs.values())
|
|
|
+ if lv_qs.exists():
|
|
|
+ lv_qs.update(status=0)
|
|
|
+ return response.json(0)
|
|
|
+ else:
|
|
|
+ return response.json(404)
|
|
|
+ else:
|
|
|
+ return response.json(404)
|
|
|
+
|
|
|
+
|