mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 21:25:42 +00:00 
			
		
		
		
	Refactor edit and delete forms for ManufacturerPart
This commit is contained in:
		| @@ -113,21 +113,27 @@ $('#order-part, #order-part2').click(function() { | |||||||
| }); | }); | ||||||
|  |  | ||||||
| $('#edit-part').click(function () { | $('#edit-part').click(function () { | ||||||
|     launchModalForm( |  | ||||||
|                     "{% url 'manufacturer-part-edit' part.id %}", |     constructForm('{% url "api-manufacturer-part-detail" part.pk %}', { | ||||||
|                     { |         fields: { | ||||||
|                         reload: true |             part: {}, | ||||||
|                     } |             manufacturer: {}, | ||||||
|     ); |             MPN: {}, | ||||||
|  |             description: {}, | ||||||
|  |             link: {}, | ||||||
|  |         }, | ||||||
|  |         title: '{% trans "Edit Manufacturer Part" %}', | ||||||
|  |         reload: true, | ||||||
|  |     }); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| $('#delete-part').click(function() { | $('#delete-part').click(function() { | ||||||
|     launchModalForm( |  | ||||||
|         "{% url 'manufacturer-part-delete' %}?part={{ part.id }}", |     constructForm('{% url "api-manufacturer-part-detail" part.pk %}', { | ||||||
|         { |         method: 'DELETE', | ||||||
|             redirect: "{% url 'company-detail-manufacturer-parts' part.manufacturer.id %}" |         title: '{% trans "Delete Manufacturer Part" %}', | ||||||
|         } |         redirect: "{% url 'company-detail-manufacturer-parts' part.manufacturer.id %}", | ||||||
|     ); |     }); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| {% endblock %} | {% endblock %} | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| {% extends "modal_delete_form.html" %} |  | ||||||
| {% load i18n %} |  | ||||||
|  |  | ||||||
| {% block pre_form_content %} |  | ||||||
| <div class='alert alert-block alert-warning'> |  | ||||||
|     {% trans "Are you sure you want to delete the following Manufacturer Parts?" %} |  | ||||||
| </div> |  | ||||||
| {% for part in parts %} |  | ||||||
|  |  | ||||||
| {% endfor %} |  | ||||||
|  |  | ||||||
| {% endblock %} |  | ||||||
|  |  | ||||||
| {% block form_data %} |  | ||||||
|  |  | ||||||
| {% for part in parts %} |  | ||||||
| <table class='table table-striped table-condensed'> |  | ||||||
| <tr> |  | ||||||
|     <input type='hidden' name='manufacturer-part-{{ part.id}}' value='manufacturer-part-{{ part.id }}'/> |  | ||||||
|  |  | ||||||
|     <td> |  | ||||||
|         {% include "hover_image.html" with image=part.part.image %} |  | ||||||
|         {{ part.part.full_name }} |  | ||||||
|     </td> |  | ||||||
|     <td> |  | ||||||
|         {% include "hover_image.html" with image=part.manufacturer.image %} |  | ||||||
|         {{ part.manufacturer.name }} |  | ||||||
|     </td> |  | ||||||
|     <td> |  | ||||||
|         {{ part.MPN }} |  | ||||||
|     </td> |  | ||||||
| </tr> |  | ||||||
| </table> |  | ||||||
| {% if part.supplier_parts.all|length > 0 %} |  | ||||||
| <div class='alert alert-block alert-danger'> |  | ||||||
| <p>{% blocktrans with count=part.supplier_parts.all|length %}There are {{count}} suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:{% endblocktrans %}</p> |  | ||||||
| <ul class='list-group' style='margin-top:10px'> |  | ||||||
|     {% for spart in part.supplier_parts.all %} |  | ||||||
|     <li class='list-group-item'>{{ spart.supplier.name }} - {{ spart.SKU }}</li> |  | ||||||
|     {% endfor %} |  | ||||||
| </ul> |  | ||||||
| </div> |  | ||||||
| {% endif %} |  | ||||||
| {% endfor %} |  | ||||||
|  |  | ||||||
| {% endblock %} |  | ||||||
| @@ -42,10 +42,7 @@ company_urls = [ | |||||||
| manufacturer_part_urls = [ | manufacturer_part_urls = [ | ||||||
|     url(r'^new/?', views.ManufacturerPartCreate.as_view(), name='manufacturer-part-create'), |     url(r'^new/?', views.ManufacturerPartCreate.as_view(), name='manufacturer-part-create'), | ||||||
|  |  | ||||||
|     url(r'^delete/', views.ManufacturerPartDelete.as_view(), name='manufacturer-part-delete'), |  | ||||||
|  |  | ||||||
|     url(r'^(?P<pk>\d+)/', include([ |     url(r'^(?P<pk>\d+)/', include([ | ||||||
|         url(r'^edit/?', views.ManufacturerPartEdit.as_view(), name='manufacturer-part-edit'), |  | ||||||
|         url(r'^suppliers/', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-suppliers'), |         url(r'^suppliers/', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-suppliers'), | ||||||
|         url('^.*$', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-detail'), |         url('^.*$', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-detail'), | ||||||
|     ])), |     ])), | ||||||
|   | |||||||
| @@ -258,16 +258,6 @@ class ManufacturerPartDetail(DetailView): | |||||||
|         return ctx |         return ctx | ||||||
|  |  | ||||||
|  |  | ||||||
| class ManufacturerPartEdit(AjaxUpdateView): |  | ||||||
|     """ Update view for editing ManufacturerPart """ |  | ||||||
|  |  | ||||||
|     model = ManufacturerPart |  | ||||||
|     context_object_name = 'part' |  | ||||||
|     form_class = EditManufacturerPartForm |  | ||||||
|     ajax_template_name = 'modal_form.html' |  | ||||||
|     ajax_form_title = _('Edit Manufacturer Part') |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ManufacturerPartCreate(AjaxCreateView): | class ManufacturerPartCreate(AjaxCreateView): | ||||||
|     """ Create view for making new ManufacturerPart """ |     """ Create view for making new ManufacturerPart """ | ||||||
|  |  | ||||||
| @@ -336,85 +326,6 @@ class ManufacturerPartCreate(AjaxCreateView): | |||||||
|         return initials |         return initials | ||||||
|  |  | ||||||
|  |  | ||||||
| class ManufacturerPartDelete(AjaxDeleteView): |  | ||||||
|     """ Delete view for removing a ManufacturerPart. |  | ||||||
|  |  | ||||||
|     ManufacturerParts can be deleted using a variety of 'selectors'. |  | ||||||
|  |  | ||||||
|     - ?part=<pk> -> Delete a single ManufacturerPart object |  | ||||||
|     - ?parts=[] -> Delete a list of ManufacturerPart objects |  | ||||||
|  |  | ||||||
|     """ |  | ||||||
|  |  | ||||||
|     success_url = '/manufacturer/' |  | ||||||
|     ajax_template_name = 'company/manufacturer_part_delete.html' |  | ||||||
|     ajax_form_title = _('Delete Manufacturer Part') |  | ||||||
|  |  | ||||||
|     role_required = 'purchase_order.delete' |  | ||||||
|  |  | ||||||
|     parts = [] |  | ||||||
|  |  | ||||||
|     def get_context_data(self): |  | ||||||
|         ctx = {} |  | ||||||
|  |  | ||||||
|         ctx['parts'] = self.parts |  | ||||||
|  |  | ||||||
|         return ctx |  | ||||||
|  |  | ||||||
|     def get_parts(self): |  | ||||||
|         """ Determine which ManufacturerPart object(s) the user wishes to delete. |  | ||||||
|         """ |  | ||||||
|  |  | ||||||
|         self.parts = [] |  | ||||||
|  |  | ||||||
|         # User passes a single ManufacturerPart ID |  | ||||||
|         if 'part' in self.request.GET: |  | ||||||
|             try: |  | ||||||
|                 self.parts.append(ManufacturerPart.objects.get(pk=self.request.GET.get('part'))) |  | ||||||
|             except (ValueError, ManufacturerPart.DoesNotExist): |  | ||||||
|                 pass |  | ||||||
|  |  | ||||||
|         elif 'parts[]' in self.request.GET: |  | ||||||
|  |  | ||||||
|             part_id_list = self.request.GET.getlist('parts[]') |  | ||||||
|  |  | ||||||
|             self.parts = ManufacturerPart.objects.filter(id__in=part_id_list) |  | ||||||
|  |  | ||||||
|     def get(self, request, *args, **kwargs): |  | ||||||
|         self.request = request |  | ||||||
|         self.get_parts() |  | ||||||
|  |  | ||||||
|         return self.renderJsonResponse(request, form=self.get_form()) |  | ||||||
|  |  | ||||||
|     def post(self, request, *args, **kwargs): |  | ||||||
|         """ Handle the POST action for deleting ManufacturerPart object. |  | ||||||
|         """ |  | ||||||
|  |  | ||||||
|         self.request = request |  | ||||||
|         self.parts = [] |  | ||||||
|  |  | ||||||
|         for item in self.request.POST: |  | ||||||
|             if item.startswith('manufacturer-part-'): |  | ||||||
|                 pk = item.replace('manufacturer-part-', '') |  | ||||||
|  |  | ||||||
|                 try: |  | ||||||
|                     self.parts.append(ManufacturerPart.objects.get(pk=pk)) |  | ||||||
|                 except (ValueError, ManufacturerPart.DoesNotExist): |  | ||||||
|                     pass |  | ||||||
|  |  | ||||||
|         confirm = str2bool(self.request.POST.get('confirm_delete', False)) |  | ||||||
|  |  | ||||||
|         data = { |  | ||||||
|             'form_valid': confirm, |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         if confirm: |  | ||||||
|             for part in self.parts: |  | ||||||
|                 part.delete() |  | ||||||
|  |  | ||||||
|         return self.renderJsonResponse(self.request, data=data, form=self.get_form()) |  | ||||||
|      |  | ||||||
|  |  | ||||||
| class SupplierPartDetail(DetailView): | class SupplierPartDetail(DetailView): | ||||||
|     """ Detail view for SupplierPart """ |     """ Detail view for SupplierPart """ | ||||||
|     model = SupplierPart |     model = SupplierPart | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user