Exemplo n.º 1
0
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
    })
Exemplo n.º 2
0
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
    })
Exemplo n.º 3
0
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
    })
Exemplo n.º 4
0
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({})
Exemplo n.º 5
0
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})
Exemplo n.º 6
0
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
    })
Exemplo n.º 7
0
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())
Exemplo n.º 8
0
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})
Exemplo n.º 9
0
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())
Exemplo n.º 10
0
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})
Exemplo n.º 11
0
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'})
Exemplo n.º 12
0
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})
Exemplo n.º 13
0
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})
Exemplo n.º 14
0
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())
Exemplo n.º 15
0
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)
Exemplo n.º 16
0
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())
Exemplo n.º 17
0
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,
    })
Exemplo n.º 18
0
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)
Exemplo n.º 19
0
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())
Exemplo n.º 20
0
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)
Exemplo n.º 21
0
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())
Exemplo n.º 22
0
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
    })
Exemplo n.º 23
0
def edit_view(request):
    return json_response({'is_success': True})
Exemplo n.º 24
0
def current_user_view(request):
    user = request.user
    return json_response({'name': user.name, 'userid': user.id})
Exemplo n.º 25
0
def logout_view(request):
    logout(request)
    return json_response({'status': 'ok'})
Exemplo n.º 26
0
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})