def meter_list_view(request): meter_list = Meter.objects.all().order_by('station') params = request.GET name = params.get('name', None) if name: meter_list = meter_list.filter(name__icontains=name) station_id = params.get('station', None) if station_id: meter_list = meter_list.filter(station__id=station_id) type = params.get('type', None) if type: meter_list = meter_list.filter(type=type) direction = params.get('direction', None) if direction: meter_list = meter_list.filter(direction=direction) total = meter_list.count() page_size = params.get('pageSize', None) current = params.get('current', None) if page_size and current: start_index = (int(current) - 1) * int(page_size) end_index = int(current) * int(page_size) meter_list = meter_list[start_index:end_index] return json_response({ 'data': [meter.to_dict() for meter in meter_list], 'total': total, 'success': True, 'pageSize': page_size, 'current': current })
def station_list_view(request): params = request.GET station_list = Station.objects.all() name = params.get('name', None) if name: station_list = station_list.filter(name__icontains=name) company_id = params.get('company', None) if company_id: station_list = station_list.filter(company__id=company_id) total = station_list.count() page_size = params.get('pageSize', None) current = params.get('current', None) if page_size and current: start_index = (int(current) - 1) * int(page_size) end_index = int(current) * int(page_size) station_list = station_list[start_index:end_index] return json_response({ 'data': [station.to_dict() for station in station_list], 'total': total, 'success': True, 'pageSize': page_size, 'current': current })
def electricity_list_view(request): params = request.GET meter_id = params.get('meter') electricity_list = Electricity.objects\ .filter(meter__id=meter_id)\ .order_by('-date') start_date = params.get('startDate', None) if start_date: electricity_list = electricity_list.filter(date__gte=start_date) end_date = params.get('endDate', None) if end_date: electricity_list = electricity_list.filter(end_date__lte=end_date) page_size = int(params.get('pageSize')) current = int(params.get('current')) start_index = (current - 1) * page_size end_index = current * page_size return json_response({ 'data': [ electricity.to_dict() for electricity in electricity_list[start_index:end_index] ], 'total': electricity_list.count(), 'success': True, 'pageSize': page_size, 'current': current })
def delete_meter_view(request): params = json.loads(request.body) ids = params.get('ids', []) for id in ids: Meter.objects.get(pk=id).delete() return json_response({})
def ajax_list_view(request): idea_list = get_ideas(request) paginator = Paginator(idea_list, 10) page = request.GET.get('page', 1) ideas = paginator.get_page(page) return json_response({'ideas': ideas})
def settlement_list_view(request): params = request.GET station_id = params.get('station') settlement_list = Settlement.objects\ .filter(station__id=station_id)\ .order_by('-month') month = params.get('month', None) if month: settlement_list = settlement_list.filter(month=month + '-01') page_size = int(params.get('pageSize')) current = int(params.get('current')) start_index = (current - 1) * page_size end_index = current * page_size return json_response({ 'data': [ settlement.to_dict() for settlement in settlement_list[start_index:end_index] ], 'total': settlement_list.count(), 'success': True, 'pageSize': page_size, 'current': current })
def add_company_view(request): params = json.loads(request.body) company = Company() company.name = params.get('name') company.save() return json_response(company.to_dict())
def station_option_view(request): station_list = Station.objects.all() stations = [] for station in station_list: stations.append({'value': station.id, 'label': station.name}) return json_response({'stations': stations})
def update_company_view(request): params = json.loads(request.body) id = params.get('id') company = Company.objects.get(pk=id) company.name = params.get('name') company.save() return json_response(company.to_dict())
def change_password_view(request): password = request.POST.get('password') user = request.user user.set_password(password) user.save() login(request, user) return json_response({'is_success': True})
def change_password_view(request): params = json.loads(request.body) password = params.get('password') user = request.user user.set_password(password) user.save() return json_response({'status': 'ok'})
def create_view(request): idea = Idea() title = request.POST.get('title', '') description = request.POST.get('description', '') idea.title = title idea.description = description idea.user = request.user idea.save() return json_response({'is_success': True})
def edit_view(request): idea_id = request.POST.get('id', '') idea = Idea.objects.get(id=idea_id, user=request.user) title = request.POST.get('title', '') description = request.POST.get('description', '') idea.title = title idea.description = description idea.save() return json_response({'is_success': True})
def add_settlement_view(request): params = json.loads(request.body) station_id = params.get('station') station = Station.objects.get(id=station_id) settlement = Settlement() settlement.station = station settlement.month = params.get('month') + '-01' settlement.start_date = params.get('start_date') settlement.end_date = params.get('end_date') settlement.type = params.get('type') settlement.mode = params.get('mode') single_price = params.get('single_price', None) if single_price: settlement.single_price = single_price sharp_price = params.get('sharp_price', None) if sharp_price: settlement.sharp_price = sharp_price peak_price = params.get('peak_price', None) if peak_price: settlement.peak_price = peak_price flat_price = params.get('flat_price', None) if flat_price: settlement.flat_price = flat_price valley_price = params.get('valley_price', None) if valley_price: settlement.valley_price = valley_price discount = params.get('discount', None) if discount: settlement.discount = discount # For direct purchase direct_purchase_percent = params.get('direct_purchase_percent', None) if direct_purchase_percent: settlement.direct_purchase_percent = direct_purchase_percent direct_purchase_sharp_price = params.get('direct_purchase_sharp_price', None) if direct_purchase_sharp_price: settlement.direct_purchase_sharp_price = direct_purchase_sharp_price direct_purchase_peak_price = params.get('direct_purchase_peak_price', None) if direct_purchase_peak_price: settlement.direct_purchase_peak_price = direct_purchase_peak_price direct_purchase_flat_price = params.get('direct_purchase_flat_price', None) if direct_purchase_flat_price: settlement.direct_purchase_flat_price = direct_purchase_flat_price direct_purchase_valley_price = params.get('direct_purchase_valley_price', None) if direct_purchase_valley_price: settlement.direct_purchase_valley_price = direct_purchase_valley_price # End for direct purchase settlement.save() return json_response(settlement.to_dict())
def ajax_login_view(request): username = request.POST.get('username') password = request.POST.get('password') user = authenticate(request, username=username, password=password) debug(user) response = {} if user is not None: login(request, user) response['is_success'] = True elif not User.objects.filter(username=username).exists(): response['invalid_username'] = True else: response['invalid_password'] = True return json_response(response)
def add_station_view(request): params = json.loads(request.body) company_id = params.get('company') company = Company.objects.get(id=company_id) station = Station() station.name = params.get('name') station.capacity = params.get('capacity') station.mode = params.get('mode') station.is_self_consume = params.get('is_self_consume') station.is_self_consume_discount = params.get('is_self_consume_discount') station.company = company station.save() return json_response(station.to_dict())
def bill_list_view(request): params = request.GET month = params.get('month') settlement_list = Settlement.objects\ .filter(month=month + '-01')\ .order_by('station__company', 'station__mode', 'station', 'type') company_id_list = [] mode_list = [] station_id_list = [] data = [] for settlement in settlement_list: company_id = settlement.station.company.id company_row_span = 0 if company_id not in company_id_list: mode_list = [] company_id_list.append(company_id) company_row_span = settlement_list.filter( station__company__id=company_id).count() mode = settlement.station.mode mode_row_span = 0 if mode not in mode_list: mode_list.append(mode) mode_row_span = settlement_list.filter( station__company__id=company_id, station__mode=mode).count() station_id = settlement.station.id station_row_span = 0 if station_id not in station_id_list: station_id_list.append(station_id) station_row_span = settlement_list.filter( station__id=station_id).count() settlement_dict = settlement.to_bill_dict() settlement_dict['company_row_span'] = company_row_span settlement_dict['mode_row_span'] = mode_row_span settlement_dict['station_row_span'] = station_row_span data.append(settlement_dict) return json_response({ 'data': data, 'total': settlement_list.count(), 'success': True, })
def login_view(request): params = json.loads(request.body) username = params.get('userName') password = params.get('password') user = authenticate(request, username=username, password=password) debug(user) response = {} if user is not None: login(request, user) authority = 'admin' if user.is_admin else 'user' # authority = 'user' debug(user.is_admin) response = {'status': 'ok', 'currentAuthority': authority} else: response = {'status': 'error', 'currentAuthority': 'guest'} return json_response(response)
def add_meter_view(request): params = json.loads(request.body) station_id = params.get('station') station = Station.objects.get(id=station_id) meter = Meter() meter.name = params.get('name') meter.station = station meter.type = params.get('type') meter.direction = params.get('direction') meter.ct = params.get('ct') meter.pt = params.get('pt') number = params.get('number', None) if number: meter.number = number meter.save() return json_response(meter.to_dict())
def accept_view(request, idea_id): response = {} user = request.user if not user.can_accept: debug(user, 'limited permission') response['error_message'] = '没有权限采纳建议!' elif not Idea.objects.filter(id=idea_id).exists(): response['error_message'] = '此建议不存在!' elif Idea.objects.filter(id=idea_id, status=1).exists(): response['error_message'] = '此建议已被采纳,请刷新界面!' else: idea = Idea.objects.get(id=idea_id) idea.status = 1 idea.acceptor = user idea.accept_datetime = timezone.now() idea.save() response['is_success'] = True return json_response(response)
def add_electricity_view(request): params = json.loads(request.body) date = params.get('date') meter_id = params.get('meter') meter = Meter.objects.get(id=meter_id) electricity = Electricity() electricity.date = date electricity.meter = meter electricity.forward_total = params.get('forward_total') electricity.reverse_total = params.get('reverse_total') forward_sharp = params.get('forward_sharp', None) if forward_sharp: electricity.forward_sharp = forward_sharp forward_peak = params.get('forward_peak', None) if forward_peak: electricity.forward_peak = forward_peak forward_flat = params.get('forward_flat', None) if forward_flat: electricity.forward_flat = forward_flat forward_valley = params.get('forward_valley', None) if forward_valley: electricity.forward_valley = forward_valley reverse_sharp = params.get('reverse_sharp', None) if reverse_sharp: electricity.reverse_sharp = reverse_sharp reverse_peak = params.get('reverse_peak', None) if reverse_peak: electricity.reverse_peak = reverse_peak reverse_flat = params.get('reverse_flat', None) if reverse_flat: electricity.reverse_flat = reverse_flat reverse_valley = params.get('reverse_valley', None) if reverse_valley: electricity.reverse_valley = reverse_valley electricity.save() return json_response(electricity.to_dict())
def company_list_view(request): params = request.GET page_size = int(params.get('pageSize')) current = int(params.get('current')) start_index = (current - 1) * page_size end_index = current * page_size company_list = Company.objects.all() name = params.get('name', None) if name: company_list = company_list.filter(name__icontains=name) return json_response({ 'data': [company.to_dict() for company in company_list[start_index:end_index]], 'total': company_list.count(), 'success': True, 'pageSize': page_size, 'current': current })
def edit_view(request): return json_response({'is_success': True})
def current_user_view(request): user = request.user return json_response({'name': user.name, 'userid': user.id})
def logout_view(request): logout(request) return json_response({'status': 'ok'})
def company_option_view(request): companies = [] for company in Company.objects.all(): companies.append({'value': company.id, 'label': company.name}) return json_response({'companies': companies})