Exemplo n.º 1
0
def external_push_brewfather_view(request, push_target_id):
    # TODO - Add user permissioning
    # if not request.user.has_perm('app.add_device'):
    #     messages.error(request, 'Your account is not permissioned to add devices. Please contact an admin')
    #     return redirect("/")

    try:
        push_target = BrewfatherPushTarget.objects.get(id=push_target_id)
    except ObjectDoesNotExist:
        messages.error(
            request,
            "Brewfather push target {} does not exist".format(push_target_id))
        return redirect('external_push_list')

    if request.POST:
        form = forms.BrewfatherPushTargetModelForm(request.POST,
                                                   instance=push_target)
        if form.is_valid():
            updated_push_target = form.save()
            messages.success(request, 'Updated push target')
            return redirect('external_push_list')

        messages.error(request, 'Unable to update push target')

    form = forms.BrewfatherPushTargetModelForm(instance=push_target)

    return render(
        request,
        template_name='external_push/brewfather_push_target_view.html',
        context={
            'push_target': push_target,
            'form': form
        })
Exemplo n.º 2
0
def external_push_brewfather_target_add(request):
    # TODO - Add user permissioning
    # if not request.user.has_perm('app.add_device'):
    #     messages.error(request, 'Your account is not permissioned to add devices. Please contact an admin')
    #     return redirect("/")

    form = forms.BrewfatherPushTargetModelForm()

    if request.POST:
        form = forms.BrewfatherPushTargetModelForm(request.POST)
        if form.is_valid():
            new_push_target = form.save()
            messages.success(request, 'Successfully added push target')

            # Update last triggered to force a refresh in the next cycle
            new_push_target.last_triggered = new_push_target.last_triggered - datetime.timedelta(
                seconds=new_push_target.push_frequency)
            new_push_target.save()

            return redirect('external_push_list')

        messages.error(request, 'Unable to add new push target')

    # Basically, if we don't get redirected, in every case we're just outputting the same template
    return render(
        request,
        template_name='external_push/brewfather_push_target_add.html',
        context={'form': form})