mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Customize "CompanyCreate" form based on calling url
This commit is contained in:
parent
9e9e29679d
commit
8adc83b650
@ -115,9 +115,12 @@ class AjaxMixin(object):
|
||||
# (this can be overridden by a child class)
|
||||
ajax_template_name = 'modal_form.html'
|
||||
|
||||
ajax_form_action = ''
|
||||
ajax_form_title = ''
|
||||
|
||||
def get_form_title(self):
|
||||
""" Default implementation - return the ajax_form_title variable """
|
||||
return self.ajax_form_title
|
||||
|
||||
def get_param(self, name, method='GET'):
|
||||
""" Get a request query parameter value from URL e.g. ?part=3
|
||||
|
||||
@ -169,7 +172,7 @@ class AjaxMixin(object):
|
||||
else:
|
||||
context['form'] = None
|
||||
|
||||
data['title'] = self.ajax_form_title
|
||||
data['title'] = self.get_form_title()
|
||||
|
||||
data['html_form'] = render_to_string(
|
||||
self.ajax_template_name,
|
||||
|
@ -14,7 +14,7 @@ InvenTree | {% trans "Supplier List" %}
|
||||
|
||||
<div id='button-toolbar'>
|
||||
<div class='btn-group'>
|
||||
<button type='button' class="btn btn-success" id='new-company'>{{ new_button_text }}</button>
|
||||
<button type='button' class="btn btn-success" id='new-company'>{{ button_text }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -26,11 +26,9 @@ InvenTree | {% trans "Supplier List" %}
|
||||
{% block js_ready %}
|
||||
{{ block.super }}
|
||||
$('#new-company').click(function () {
|
||||
launchModalForm(
|
||||
"{% url 'company-create' %}",
|
||||
{
|
||||
follow: true
|
||||
});
|
||||
launchModalForm("{{ create_url }}", {
|
||||
follow: true
|
||||
});
|
||||
});
|
||||
|
||||
loadCompanyTable("#company-table", "{% url 'api-company-list' %}",
|
||||
|
@ -29,6 +29,9 @@ company_detail_urls = [
|
||||
|
||||
company_urls = [
|
||||
|
||||
url(r'new/supplier/', views.CompanyCreate.as_view(), name='supplier-create'),
|
||||
url(r'new/manufacturer/', views.CompanyCreate.as_view(), name='manufacturer-create'),
|
||||
url(r'new/customer/', views.CompanyCreate.as_view(), name='customer-create'),
|
||||
url(r'new/?', views.CompanyCreate.as_view(), name='company-create'),
|
||||
|
||||
url(r'^(?P<pk>\d+)/', include(company_detail_urls)),
|
||||
|
@ -43,29 +43,50 @@ class CompanyIndex(ListView):
|
||||
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
|
||||
url = self.request.path
|
||||
# Provide custom context data to the template,
|
||||
# based on the URL we use to access this page
|
||||
|
||||
print(url)
|
||||
print(reverse('supplier-index'))
|
||||
print(reverse('manufacturer-index'))
|
||||
print(reverse('customer-index'))
|
||||
lookup = {
|
||||
reverse('supplier-index'): {
|
||||
'title': _('Suppliers'),
|
||||
'button_text': _('New Supplier'),
|
||||
'filters': {'is_supplier': 'true'},
|
||||
'create_url': reverse('supplier-create'),
|
||||
},
|
||||
reverse('manufacturer-index'): {
|
||||
'title': _('Manufacturers'),
|
||||
'button_text': _('New Manufacturer'),
|
||||
'filters': {'is_manufacturer': 'true'},
|
||||
'create_url': reverse('manufacturer-create'),
|
||||
},
|
||||
reverse('customer-index'): {
|
||||
'title': _('Customers'),
|
||||
'button_text': _('New Customer'),
|
||||
'filters': {'is_customer': 'true'},
|
||||
'create_url': reverse('customer-create'),
|
||||
}
|
||||
}
|
||||
|
||||
if url == reverse('supplier-index'):
|
||||
ctx["title"] = _("Suppliers")
|
||||
ctx['new_button_text'] = _("New Supplier")
|
||||
ctx["filters"] = {"is_supplier": "true"}
|
||||
elif url == reverse('manufacturer-index'):
|
||||
ctx["title"] = _("Manufacturers")
|
||||
ctx['new_button_text'] = _("New Manufacturer")
|
||||
ctx["filters"] = {"is_manufacturer": "true"}
|
||||
elif url == reverse('customer-index'):
|
||||
ctx["title"] = _("Customers")
|
||||
ctx['new_button_text'] = _("New Customer")
|
||||
ctx["filters"] = {"is_customer": "true"}
|
||||
else:
|
||||
ctx["title"] = _("Companies")
|
||||
ctx["new_button_text"] = _("New Company")
|
||||
ctx["filters"] = {}
|
||||
default = {
|
||||
'title': _('Companies'),
|
||||
'button_text': _('New Company'),
|
||||
'filters': {},
|
||||
'create_url': reverse('company-create'),
|
||||
}
|
||||
|
||||
context = None
|
||||
|
||||
for item in lookup:
|
||||
print(self.request.path, item)
|
||||
if self.request.path == item:
|
||||
context = lookup[item]
|
||||
break
|
||||
|
||||
if context is None:
|
||||
context = default
|
||||
|
||||
for key,value in context.items():
|
||||
ctx[key] = value
|
||||
|
||||
return ctx
|
||||
|
||||
@ -156,7 +177,44 @@ class CompanyCreate(AjaxCreateView):
|
||||
context_object_name = 'company'
|
||||
form_class = EditCompanyForm
|
||||
ajax_template_name = 'modal_form.html'
|
||||
ajax_form_title = _("Create new Company")
|
||||
|
||||
def get_form_title(self):
|
||||
|
||||
url = self.request.path
|
||||
|
||||
if url == reverse('supplier-create'):
|
||||
return _("Create new Supplier")
|
||||
|
||||
if url == reverse('manufacturer-create'):
|
||||
return _('Create new Manufacturer')
|
||||
|
||||
if url == reverse('customer-create'):
|
||||
return _('Create new Customer')
|
||||
|
||||
return _('Create new Company')
|
||||
|
||||
def get_initial(self):
|
||||
""" Initial values for the form data """
|
||||
initials = super().get_initial().copy()
|
||||
|
||||
url = self.request.path
|
||||
|
||||
if url == reverse('supplier-create'):
|
||||
initials['is_supplier'] = True
|
||||
initials['is_customer'] = False
|
||||
initials['is_manufacturer'] = False
|
||||
|
||||
elif url == reverse('manufacturer-create'):
|
||||
initials['is_manufacturer'] = True
|
||||
initials['is_supplier'] = True
|
||||
initials['is_customer'] = False
|
||||
|
||||
elif url == reverse('customer-create'):
|
||||
initials['is_customer'] = True
|
||||
initials['is_manufacturer'] = False
|
||||
initials['is_supplier'] = False
|
||||
|
||||
return initials
|
||||
|
||||
def get_data(self):
|
||||
return {
|
||||
|
Loading…
Reference in New Issue
Block a user