slowly but steady
This commit is contained in:
parent
ce41fa331a
commit
3413c9da9d
|
@ -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:
|
||||
|
|
|
@ -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 %}
|
||||
|
|
|
@ -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})
|
||||
|
|
Loading…
Reference in New Issue