slowly but steady

This commit is contained in:
Andreas Zweili 2022-02-03 22:24:30 +01:00
parent ce41fa331a
commit 3413c9da9d
3 changed files with 18 additions and 10 deletions

View File

@ -1,7 +1,7 @@
from django.urls import reverse_lazy
import floppyforms.__future__ as forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Fieldset, Submit, HTML, Field, Button
from crispy_forms.layout import Layout, Fieldset, Submit, HTML, Field, Button, Div
from crispy_forms.bootstrap import FormActions
from core import utils
@ -30,8 +30,8 @@ class DeviceCategoryForm(forms.ModelForm):
self.helper = FormHelper()
self.helper.attrs = {
'hx-post': reverse_lazy('device_category_create'),
'hx_target': '#htmx-device-form',
'hx-swap': 'outerHTML'
'hx-target': '#device-update',
'hx-swap': 'innerHTML'
}
self.helper.layout = Layout(
Field('name'),
@ -88,7 +88,7 @@ class DeviceUpdateForm(forms.ModelForm):
'user',
'category',
HTML("""
<a hx-get="{% url 'device_category_create' %}" hx-target="#htmx-modal-position" href="" class="add" title="Add" data-toggle="tooltip"><i class="material-icons">add</i></a>
<a hx-get="{% url 'device_category_create' %}" hx-swap="innerHTML" hx-target="#htmx-modal-position" href="" class="add" title="Add" data-toggle="tooltip"><i class="material-icons">add</i></a>
"""),
'serialnumber',
'description',
@ -97,7 +97,8 @@ class DeviceUpdateForm(forms.ModelForm):
Submit('save_device', 'Save'),
HTML(
"""<a href="{{ request.META.HTTP_REFERER }}" class="btn btn-secondary">Cancel</a>""")
)
),
Div(css_id='htmx-modal-position', css_class="col")
)
class Meta:

View File

@ -4,7 +4,7 @@
{% block section_title %}Edit Device{% endblock %}
{% block content %}
{% crispy form %}
<div class="col" id="htmx-modal-position"></div>
<div id="device-update">
{% crispy form %}
</div>
{% endblock %}

View File

@ -106,6 +106,7 @@ def device_update_view(request, pk):
A view to create a customer.
"""
template_name = 'devices/device_update.html'
request.session['device_to_update'] = pk
device = utils.get_object_with_view_permission(Device,
user=request.user,
pk=pk)
@ -206,14 +207,20 @@ class DeviceManufacturerDetailView(LoginRequiredMixin, DetailView):
@login_required
def htmx_create_device_cagetory(request):
template_path = "devices/partials/device_category_create.html"
pk = request.session.get('device_to_update')
device = utils.get_object_with_view_permission(Device,
user=request.user,
pk=pk)
if request.method == "POST" and 'save_category' in request.POST:
form = DeviceCategoryForm(request.POST)
if form.is_valid():
form.save(commit=True)
device_form = DeviceUpdateForm(request)
category = form.save(commit=True)
device.category = category
device_form = DeviceUpdateForm(request, instance=device)
form_html = render_crispy_form(device_form)
return HttpResponse(form_html)
else:
form.helper.attrs['hx-target'] = '#htmx-modal-position'
return TemplateResponse(request,
template_path,
context={"form": form})