|
# -*- 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 TimeConvert import TimeConvert as tc
from maintenance.models import MaintenaceInfo
from utils.admin_utils import is_admin, is_maintenanceman
from utils.error.errno_utils import MaintenanceStatusCode
@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', '')
model_id = request.POST.get('model_id', '')
log_id = request.POST.get('log_id', '')
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', '')
maintenance_status = request.POST.get('maintenance_status', u'寄出运送中')
maintenance = MaintenaceInfo.objects.create(
user_id=user_id,
name=name,
phone=phone,
address=address,
model_id=model_id,
log_id=log_id,
sn=sn,
desc=desc,
point_id=point_id,
point_name=point_name,
express_name=express_name,
tracking_number=tracking_number,
maintenance_status=maintenance_status,
maintenance_status_at={maintenance_status: tc.utc_datetime()}
)
return response(data={
'maintenance_id': maintenance.id,
})
@logit
def maintenance_delete(request):
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
maintenance_id = request.POST.get('maintenance_id', '')
user_id = request.POST.get('user_id', '')
try:
maintenance = MaintenaceInfo.objects.get(id=maintenance_id, status=True)
except MaintenaceInfo.DoesNotExist:
return response(MaintenanceStatusCode.MAINTENACE_NOT_FOUND)
if user_id != maintenance.user_id and not is_maintenanceman(brand_id, user_id):
return response(MaintenanceStatusCode.MAINTENACE_PERMISSION_DENIED)
maintenance.status = False
maintenance.save()
return response()
@logit
def maintenance_update(request):
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
maintenance_id = request.POST.get('maintenance_id', '')
admin_id = request.POST.get('admin_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', '')
back_express_name = request.POST.get('back_express_name', '')
back_tracking_number = request.POST.get('back_tracking_number', '')
maintenance_status = request.POST.get('maintenance_status', u'寄出运送中')
try:
maintenance = MaintenaceInfo.objects.get(id=maintenance_id, status=True)
except MaintenaceInfo.DoesNotExist:
return response(MaintenanceStatusCode.MAINTENACE_NOT_FOUND)
if user_id != maintenance.user_id and not is_admin(brand_id, admin_id):
return response(MaintenanceStatusCode.MAINTENACE_PERMISSION_DENIED)
if name:
maintenance.name = name
if phone:
maintenance.phone = phone
if address:
maintenance.address = address
if sn:
maintenance.sn = sn
if desc:
maintenance.desc = desc
if point_id:
maintenance.point_id = point_id
if point_name:
maintenance.point_name = point_name
if express_name:
maintenance.express_name = express_name
if tracking_number:
maintenance.tracking_number = tracking_number
if back_express_name:
maintenance.back_express_name = back_express_name
if back_tracking_number:
maintenance.back_tracking_number = back_tracking_number
if maintenance_status:
maintenance.maintenance_status = maintenance_status
maintenance_status_at = maintenance.maintenance_status_at
maintenance_status_at[maintenance_status] = tc.utc_datetime()
maintenance.maintenance_status_at = maintenance_status_at
maintenance.save()
return response()
@logit
def maintenance_list(request):
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
admin_id = request.POST.get('admin_id', '')
user_id = request.POST.get('user_id', '')
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
maintenances = MaintenaceInfo.objects.filter(status=True)
if not is_admin(brand_id, admin_id):
maintenances = maintenances.filter(user_id=user_id)
count = maintenances.count()
maintenances = [maintenance.data for maintenance in maintenances]
maintenances, left = pagination(maintenances, page, num)
return response(data={
'maintenaces': maintenances,
'count': count,
'left': left,
})
@logit
def maintenance_detail(request):
maintenance_id = request.POST.get('maintenance_id', '')
try:
maintenance = MaintenaceInfo.objects.get(id=maintenance_id, status=True)
except MaintenaceInfo.DoesNotExist:
return response(MaintenanceStatusCode.MAINTENACE_NOT_FOUND)
return response(data={
'maintenace': maintenance.data,
})
|