add a form to add computers

This commit is contained in:
Andreas Zweili 2020-02-26 21:56:53 +01:00
parent 38e3491f82
commit 3da7b37e76
6 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,13 @@
{% extends "core/base.html" %}
{% load crispy_forms_tags %}
{% block section_title %}Create Computer{% endblock %}
{% block content %}
<div class="row">
<form method="post">
{% csrf_token %}
{{ form|crispy }}
<input type="submit" value="Save" class="btn btn-primary">
</form>
</div>
{% endblock %}

View File

@ -3,4 +3,6 @@
{% block section_title %}List of Computers{% endblock %}
{% block content %}
{% render_table computers %}
<a href="{% url 'computer_create' %}">Add Computer</a>
{% endblock %}

View File

@ -9,4 +9,6 @@ urlpatterns = [
name='computer'),
path('computers/all/', views.ComputersFilterView.as_view(),
name='all_computers'),
path('computer/create/', views.ComputerCreateView.as_view(),
name='computer_create'),
]

View File

@ -1,5 +1,8 @@
from django import forms
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import CreateView
from django.views.generic import UpdateView
from django.shortcuts import get_object_or_404
from django.shortcuts import render
@ -73,3 +76,35 @@ class ComputersFilterView(LoginRequiredMixin, SingleTableMixin, FilterView):
klass=Customer)
results = Computer.objects.filter(customer__in=customers)
return results
class DateInput(forms.DateInput):
input_type = 'date'
class ComputerCreateForm(forms.ModelForm):
installation_date = forms.DateField(widget=DateInput)
class Meta:
model = Computer
fields = [
'name',
'description',
'serialnumber',
'category',
'owner',
'customer',
'manufacturer',
'model',
'location',
'user',
'installation_date',
]
class ComputerCreateView(LoginRequiredMixin, CreateView):
form_class = ComputerCreateForm
template_name = 'computers/computer_create.html'
class ComputerUpdateView(LoginRequiredMixin, UpdateView):
model = Computer

View File

@ -26,6 +26,7 @@ INSTALLED_APPS = [
'bootstrap4',
'computers.apps.ComputersConfig',
'core.apps.CoreConfig',
'crispy_forms',
'customers.apps.CustomersConfig',
'devices.apps.DevicesConfig',
'django.contrib.admin',
@ -36,6 +37,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles',
'django_filters',
'django_tables2',
'floppyforms',
'guardian',
'licenses.apps.LicensesConfig',
'nested_admin',
@ -122,3 +124,4 @@ STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
DJANGO_TABLES2_TEMPLATE = "django_tables2/bootstrap4.html"
CRISPY_TEMPLATE_PACK = 'bootstrap4'

View File

@ -7,6 +7,8 @@ django-tables2
django-filter
django-nested-admin
django-bootstrap4
django-floppyforms
django-crispy-forms
pytest
pytest-django
pytest-cov