add a button to create a customer
This commit is contained in:
parent
61bbe30a3d
commit
37915ad039
|
@ -0,0 +1,14 @@
|
|||
{% extends "core/base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
{% block section_title %}Create Customer{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
<input type="submit" value="Save" class="btn btn-primary">
|
||||
<a href="{% url 'customers' %}" class="btn btn-secondary">Cancel</a>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -2,5 +2,19 @@
|
|||
{% load render_table from django_tables2 %}
|
||||
{% block section_title %}List of Customers{% endblock %}
|
||||
{% block content %}
|
||||
{% render_table customers %}
|
||||
{% if request.user.is_superuser %}
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<form action="{% url 'customer_create' %}">
|
||||
<input type="submit" value="Add Customer" class="btn btn-primary">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
{% render_table customers %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
from django.test import Client
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
def test_customer_create_view(create_admin_user):
|
||||
create_admin_user()
|
||||
data = {'name': 'Big Pharma',
|
||||
'description': 'Some text.'}
|
||||
client = Client()
|
||||
client.login(username="pharma-admin", password="password")
|
||||
response = client.post('/create/customer/', data)
|
||||
assert response.status_code == 302
|
|
@ -6,4 +6,7 @@ urlpatterns = [
|
|||
path('', views.customers_table_view, name='customers'),
|
||||
path('customer/<int:pk>/', views.CustomerDetailView.as_view(),
|
||||
name='customer'),
|
||||
path('create/customer/',
|
||||
views.CustomerCreateView.as_view(),
|
||||
name='customer_create'),
|
||||
]
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.shortcuts import render
|
||||
from django.urls import reverse
|
||||
from django.views.generic import CreateView
|
||||
from django.views.generic import DetailView
|
||||
|
||||
from django_tables2 import RequestConfig
|
||||
|
@ -26,3 +28,15 @@ class CustomerDetailView(LoginRequiredMixin,
|
|||
model = Customer
|
||||
template_name = 'customers/customer_details.html'
|
||||
permission_required = 'view_customer'
|
||||
|
||||
|
||||
class CustomerCreateView(LoginRequiredMixin, CreateView):
|
||||
"""
|
||||
A view to create a customer.
|
||||
"""
|
||||
model = Customer
|
||||
template_name = 'customers/customer_create.html'
|
||||
fields = '__all__'
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('customer', args=(self.object.pk,))
|
||||
|
|
Loading…
Reference in New Issue