|
|
@ -6,8 +6,11 @@ import json |
|
|
|
from django.shortcuts import render_to_response |
|
|
|
from django.db.models import Q |
|
|
|
from django.template import RequestContext |
|
|
|
from ox.django.shortcuts import render_to_json_response |
|
|
|
from django.views.decorators.csrf import csrf_exempt |
|
|
|
|
|
|
|
def translate(request, model, field): |
|
|
|
|
|
|
|
def googletranslate(request, model, field): |
|
|
|
start = request.GET.get("start", False) |
|
|
|
end = request.GET.get("end", False) |
|
|
|
if not start and not end: |
|
|
@ -40,16 +43,106 @@ def translate(request, model, field): |
|
|
|
ordArr.append(str(ord(char))) |
|
|
|
if not isEnglish: |
|
|
|
response.append({ |
|
|
|
'ord': ordArr.join(","), |
|
|
|
'val': val |
|
|
|
'ord': ",".join(ordArr), |
|
|
|
'val': val |
|
|
|
}) |
|
|
|
context = RequestContext(request, { |
|
|
|
'values': response, |
|
|
|
'model': model, |
|
|
|
'field': field |
|
|
|
'field': field, |
|
|
|
'start': start, |
|
|
|
'end': end |
|
|
|
}) |
|
|
|
return render_to_response("translate.html", context) |
|
|
|
|
|
|
|
@csrf_exempt |
|
|
|
def dotranslate(request, model, field): |
|
|
|
data = json.loads(request.POST.get('data', '{}')) |
|
|
|
m = models.__getattribute__(model) |
|
|
|
trans_field = "%s_trans" % field |
|
|
|
savedObjects = 0 |
|
|
|
for d in data: |
|
|
|
newVal = d['val'] |
|
|
|
oldVal = "".join([unichr(int(v)) for v in d['ord']]) |
|
|
|
q = Q(**{"%s__exact" % field: oldVal}) |
|
|
|
matches = m.objects.filter(q) |
|
|
|
for match in matches: |
|
|
|
match.__setattr__(trans_field, newVal) |
|
|
|
match.save() |
|
|
|
savedObjects += 1 |
|
|
|
return render_to_json_response({'len': savedObjects}) |
|
|
|
|
|
|
|
# return render_to_json_response(data) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def translate(request, model, field): |
|
|
|
start = request.GET.get("start", False) |
|
|
|
end = request.GET.get("end", False) |
|
|
|
if not start and not end: |
|
|
|
limit = False |
|
|
|
else: |
|
|
|
limit = True |
|
|
|
try: |
|
|
|
m = models.__getattribute__(model) |
|
|
|
except AttributeError: |
|
|
|
return HttpResponse("no such model") |
|
|
|
response = [] |
|
|
|
if field not in m._meta.get_all_field_names(): |
|
|
|
return HttpResponse("no such field") |
|
|
|
trans_field = field + "_trans" |
|
|
|
qset = m.objects.values('id', field, trans_field).order_by(field).distinct(field) |
|
|
|
if limit: |
|
|
|
if not start: |
|
|
|
start = 0 |
|
|
|
if not end: |
|
|
|
end = qset.count() |
|
|
|
qset = qset[start:end] |
|
|
|
for obj in qset: |
|
|
|
response.append({ |
|
|
|
'id': obj['id'], |
|
|
|
'string': obj[field], |
|
|
|
'translation': obj[trans_field] |
|
|
|
}) |
|
|
|
context = RequestContext(request, { |
|
|
|
'values': response, |
|
|
|
'model': model, |
|
|
|
'field': field, |
|
|
|
'start': start, |
|
|
|
'end': end |
|
|
|
}) |
|
|
|
return render_to_response("trans.html", context) |
|
|
|
|
|
|
|
|
|
|
|
def stringtranslate(request): |
|
|
|
model = request.POST.get("model", "") |
|
|
|
field = request.POST.get("field", "") |
|
|
|
id = request.POST.get("id", 0) |
|
|
|
string = request.POST.get("string", "") |
|
|
|
translation = request.POST.get("translation", "") |
|
|
|
if not model == 'Translation': |
|
|
|
return render_to_json_response({'error': 'this only works for the translation model'}) |
|
|
|
obj = Translation.objects.get(pk=id) |
|
|
|
obj.translation = translation |
|
|
|
obj.save() |
|
|
|
return render_to_json_response({'ok': 'ok'}) |
|
|
|
|
|
|
|
''' |
|
|
|
def dotrans(request, model, field): |
|
|
|
oldVal = request.POST.get('oldVal', '') |
|
|
|
newVal = request.POST.get('newVal', '') |
|
|
|
m = models.__getattribute__(model) |
|
|
|
trans_field = "%s_trans" % field |
|
|
|
savedObjects = 0 |
|
|
|
q = Q(**{"%s__exact" % trans_field: oldVal}) |
|
|
|
matches = m.objects.filter(q) |
|
|
|
for match in matches: |
|
|
|
match.__setattr__(trans_field, newVal) |
|
|
|
match.save() |
|
|
|
savedObjects += 1 |
|
|
|
return render_to_json_response({'len': savedObjects}) |
|
|
|
|
|
|
|
|
|
|
|
def dotranslate(request, model, field): |
|
|
|
txt = request.POST.get('txt', '') |
|
|
|
lines = txt.split("\n\n") |
|
|
@ -68,3 +161,4 @@ def dotranslate(request, model, field): |
|
|
|
m[trans_field] = val |
|
|
|
m.save() |
|
|
|
return HttpResponse(savedArr.join("\n")) |
|
|
|
''' |
|
|
|