|
# -*- coding: utf-8 -*-
from __future__ import division
from django.conf import settings
from django_logit import logit
from django_response import response
from paginator import pagination
from maintenance.models import MaintenaceInfo
from utils.admin_utils import is_maintenanceman
from utils.error.errno_utils import MaintenaceStatusCode
@logit
def maintenance_add(request):
user_id = request.POST.get('user_id', '')
name = request.POST.get('name', '')
phone = request.POST.get('phone', '')
address = request.POST.get('address', '')
sn = request.POST.get('sn', '')
desc = request.POST.get('desc', '')
point_id = request.POST.get('point_id', '')
point_name = request.POST.get('point_name', '')
express_name = request.POST.get('express_name', '')
tracking_number = request.POST.get('tracking_number', '')
maintenace_status = request.POST.get('maintenace_status', '')
maintenace = MaintenaceInfo.objects.create(
user_id=user_id,
name=name,
phone=phone,
address=address,
sn=sn,
desc=desc,
point_id=point_id,
point_name=point_name,
express_name=express_name,
tracking_number=tracking_number,
maintenace_status=maintenace_status,
)
return response(data={
'maintenace_id': maintenace.id,
})
@logit
def maintenance_delete(request):
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
maintenace_id = request.POST.get('maintenace_id', '')
user_id = request.POST.get('user_id', '')
try:
maintenace = MaintenaceInfo.objects.get(id=maintenace_id, status=True)
except MaintenaceInfo.DoesNotExist:
return response(MaintenaceStatusCode.MAINTENACE_NOT_FOUND)
if not is_maintenanceman(brand_id, user_id) and user_id != maintenace.user_id:
return response(MaintenaceStatusCode.MAINTENACE_PERMISSION_DENIED)
maintenace.status = False
maintenace.save()
return response()
@logit
def maintenance_update(request):
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
maintenace_id = request.POST.get('maintenace_id', '')
user_id = request.POST.get('user_id', '')
name = request.POST.get('name', '')
phone = request.POST.get('phone', '')
address = request.POST.get('address', '')
sn = request.POST.get('sn', '')
desc = request.POST.get('desc', '')
point_id = request.POST.get('point_id', '')
point_name = request.POST.get('point_name', '')
express_name = request.POST.get('express_name', '')
tracking_number = request.POST.get('tracking_number', '')
maintenace_status = request.POST.get('maintenace_status', '')
try:
maintenace = MaintenaceInfo.objects.get(id=maintenace_id, status=True)
except MaintenaceInfo.DoesNotExist:
return response(MaintenaceStatusCode.MAINTENACE_NOT_FOUND)
if not is_maintenanceman(brand_id, user_id) and user_id != maintenace.user_id:
return response(MaintenaceStatusCode.MAINTENACE_PERMISSION_DENIED)
if name:
maintenace.name = name
if phone:
maintenace.phone = phone
if address:
maintenace.address = address
if sn:
maintenace.sn = sn
if desc:
maintenace.desc = desc
if point_id:
maintenace.point_id = point_id
if point_name:
maintenace.point_name = point_name
if express_name:
maintenace.express_name = express_name
if tracking_number:
maintenace.tracking_number = tracking_number
if maintenace_status:
maintenace.maintenace_status = maintenace_status
maintenace.save()
return response()
@logit
def maintenance_list(request):
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
user_id = request.POST.get('user_id', '')
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
maintenaces = MaintenaceInfo.objects.filter(status=True)
if not is_maintenanceman(brand_id, user_id):
maintenaces = maintenaces.filter(user_id=user_id)
maintenaces = [maintenace.data for maintenace in maintenaces]
maintenaces, left = pagination(maintenaces, page, num)
return response(data={
'maintenaces': maintenaces,
'left': left,
})
@logit
def maintenance_detail(request):
maintenace_id = request.POST.get('maintenace_id', '')
try:
maintenace = MaintenaceInfo.objects.get(id=maintenace_id, status=True)
except MaintenaceInfo.DoesNotExist:
return response(MaintenaceStatusCode.MAINTENACE_NOT_FOUND)
return response(data={
'maintenace': maintenace.data,
})
|