mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Refactor stock item view
This commit is contained in:
		| @@ -14,7 +14,7 @@ | |||||||
|  |  | ||||||
| {% block heading %} | {% block heading %} | ||||||
|     {% trans "Stock Item" %}: {{ item.part.full_name}} |     {% trans "Stock Item" %}: {{ item.part.full_name}} | ||||||
| {% endblock %} | {% endblock heading %} | ||||||
|  |  | ||||||
| {% block actions %} | {% block actions %} | ||||||
|  |  | ||||||
| @@ -118,36 +118,94 @@ | |||||||
|     </div> |     </div> | ||||||
|     {% endif %} |     {% endif %} | ||||||
| {% endif %} | {% endif %} | ||||||
| {% endblock %} | {% endblock actions %} | ||||||
|  |  | ||||||
| {% block thumbnail %} | {% block thumbnail %} | ||||||
| <img class='part-thumb' {% if item.part.image %}src="{{ item.part.image.url }}"{% else %}src="{% static 'img/blank_image.png' %}"{% endif %}/> | <img class='part-thumb' {% if item.part.image %}src="{{ item.part.image.url }}"{% else %}src="{% static 'img/blank_image.png' %}"{% endif %}/> | ||||||
| {% endblock %} | {% endblock thumbnail %} | ||||||
|  |  | ||||||
| {% block details %} | {% block details %} | ||||||
|  |  | ||||||
|  | <table class='table table-striped table-condensed'> | ||||||
|  |     <col width='25'> | ||||||
|  |     <tr> | ||||||
|  |         <td><span class='fas fa-shapes'></span></td> | ||||||
|  |         <td>{% trans "Base Part" %}</td> | ||||||
|  |         <td> | ||||||
|  |             {% if roles.part.view %} | ||||||
|  |             <a href="{% url 'part-detail' item.part.id %}"> | ||||||
|  |             {% endif %} | ||||||
|  |             {{ item.part.full_name }} | ||||||
|  |             {% if roles.part.view %} | ||||||
|  |             </a> | ||||||
|  |             {% endif %} | ||||||
|  |         </td> | ||||||
|  |     </tr> | ||||||
|  |     {% if item.serialized %} | ||||||
|  |     <tr> | ||||||
|  |         <td><span class='fas fa-hashtag'></span></td> | ||||||
|  |         <td>{% trans "Serial Number" %}</td> | ||||||
|  |         <td> | ||||||
|  |         {% if previous %} | ||||||
|  |             <a class="btn btn-outline-secondary" aria-label="{% trans 'previous page' %}" href="{% url request.resolver_match.url_name previous.id %}"> | ||||||
|  |                 <small>{{ previous.serial }}</small>  ‹ | ||||||
|  |             </a> | ||||||
|  |         {% endif %} | ||||||
|  |         {{ item.serial }} | ||||||
|  |         {% if next %} | ||||||
|  |             <a class="btn btn-outline-secondary text-sm" aria-label="{% trans 'next page' %}" href="{% url request.resolver_match.url_name next.id %}"> | ||||||
|  |                 ›  <small>{{ next.serial }}</small> | ||||||
|  |             </a> | ||||||
|  |         {% endif %} | ||||||
|  |         </td> | ||||||
|  |     </tr> | ||||||
|  |     {% else %} | ||||||
|  |     <tr> | ||||||
|  |         <td></td> | ||||||
|  |         <td>{% trans "Quantity" %}</td> | ||||||
|  |         <td>{% decimal item.quantity %} {% if item.part.units %}{{ item.part.units }}{% endif %}</td> | ||||||
|  |     </tr> | ||||||
|  |     {% endif %} | ||||||
|  |     <tr> | ||||||
|  |         <td><span class='fas fa-info'></span></td> | ||||||
|  |         <td>{% trans "Status" %}</td> | ||||||
|  |         <td>{% stock_status_label item.status %}</td> | ||||||
|  |     </tr> | ||||||
|  |     {% if item.expiry_date %} | ||||||
|  |     <tr> | ||||||
|  |         <td><span class='fas fa-calendar-alt{% if item.is_expired %} icon-red{% endif %}'></span></td> | ||||||
|  |         <td>{% trans "Expiry Date" %}</td> | ||||||
|  |         <td> | ||||||
|  |             {{ item.expiry_date }} | ||||||
|  |             {% if item.is_expired %} | ||||||
|  |             <span title='{% blocktrans %}This StockItem expired on {{ item.expiry_date }}{% endblocktrans %}' class='badge rounded-pill bg-danger badge-right'>{% trans "Expired" %}</span> | ||||||
|  |             {% elif item.is_stale %} | ||||||
|  |             <span title='{% blocktrans %}This StockItem expires on {{ item.expiry_date }}{% endblocktrans %}' class='badge rounded-pill bg-warning badge-right'>{% trans "Stale" %}</span> | ||||||
|  |             {% endif %} | ||||||
|  |         </td> | ||||||
|  |     </tr> | ||||||
|  |     {% endif %} | ||||||
|  |     <tr> | ||||||
|  |         <td><span class='fas fa-calendar-alt'></span></td> | ||||||
|  |         <td>{% trans "Last Updated" %}</td> | ||||||
|  |         <td>{{ item.updated }}</td> | ||||||
|  |     </tr> | ||||||
|  |     <tr> | ||||||
|  |         <td><span class='fas fa-calendar-alt'></span></td> | ||||||
|  |         <td>{% trans "Last Stocktake" %}</td> | ||||||
|  |         {% if item.stocktake_date %} | ||||||
|  |         <td>{{ item.stocktake_date }} <span class='badge badge-right rounded-pill bg-dark'>{{ item.stocktake_user }}</span></td> | ||||||
|  |         {% else %} | ||||||
|  |         <td><em>{% trans "No stocktake performed" %}</em></td> | ||||||
|  |         {% endif %} | ||||||
|  |     </tr> | ||||||
|  | </table> | ||||||
|  |  | ||||||
| {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} | {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} | ||||||
| {% if owner_control.value == "True" %} | {% if owner_control.value == "True" %} | ||||||
|     {% authorized_owners item.owner as owners %} |     {% authorized_owners item.owner as owners %} | ||||||
| {% endif %} | {% endif %} | ||||||
|  |  | ||||||
| <h4> |  | ||||||
|     {% if item.is_expired %} |  | ||||||
|     <span class='badge rounded-pill bg-danger'>{% trans "Expired" %}</span> |  | ||||||
|     {% else %} |  | ||||||
|     {% if roles.stock.change %} |  | ||||||
|     <a href='#' id='stock-edit-status'> |  | ||||||
|     {% endif %} |  | ||||||
|     {% stock_status_label item.status large=True %} |  | ||||||
|     {% if roles.stock.change %} |  | ||||||
|     </a> |  | ||||||
|     {% endif %} |  | ||||||
|     {% if item.is_stale %} |  | ||||||
|     <span class='badge rounded-pill bg-warning'>{% trans "Stale" %}</span> |  | ||||||
|     {% endif %} |  | ||||||
|     {% endif %} |  | ||||||
| </h4> |  | ||||||
|  |  | ||||||
| <div class='info-messages'> | <div class='info-messages'> | ||||||
|  |  | ||||||
|     {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} |     {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} | ||||||
| @@ -212,49 +270,12 @@ | |||||||
|     {% endif %} |     {% endif %} | ||||||
|      |      | ||||||
| </div> | </div> | ||||||
| {% endblock %} | {% endblock details %} | ||||||
|  |  | ||||||
| {% block details_right %} | {% block details_right %} | ||||||
| <table class="table table-striped"> | <table class="table table-striped table-condensed"> | ||||||
|     <col width='25'> |     <col width='25'> | ||||||
|     <tr> |  | ||||||
|         <td><span class='fas fa-shapes'></span></td> |  | ||||||
|         <td>{% trans "Base Part" %}</td> |  | ||||||
|         <td> |  | ||||||
|             {% if roles.part.view %} |  | ||||||
|             <a href="{% url 'part-detail' item.part.id %}"> |  | ||||||
|             {% endif %} |  | ||||||
|             {{ item.part.full_name }} |  | ||||||
|             {% if roles.part.view %} |  | ||||||
|             </a> |  | ||||||
|             {% endif %} |  | ||||||
|         </td> |  | ||||||
|     </tr> |  | ||||||
|     {% if item.serialized %} |  | ||||||
|     <tr> |  | ||||||
|         <td><span class='fas fa-hashtag'></span></td> |  | ||||||
|         <td>{% trans "Serial Number" %}</td> |  | ||||||
|         <td> |  | ||||||
|         {% if previous %} |  | ||||||
|             <a class="btn btn-outline-secondary" aria-label="{% trans 'previous page' %}" href="{% url request.resolver_match.url_name previous.id %}"> |  | ||||||
|                 <small>{{ previous.serial }}</small>  ‹ |  | ||||||
|             </a> |  | ||||||
|         {% endif %} |  | ||||||
|         {{ item.serial }} |  | ||||||
|         {% if next %} |  | ||||||
|             <a class="btn btn-outline-secondary text-sm" aria-label="{% trans 'next page' %}" href="{% url request.resolver_match.url_name next.id %}"> |  | ||||||
|                 ›  <small>{{ next.serial }}</small> |  | ||||||
|             </a> |  | ||||||
|         {% endif %} |  | ||||||
|         </td> |  | ||||||
|     </tr> |  | ||||||
|     {% else %} |  | ||||||
|     <tr> |  | ||||||
|         <td></td> |  | ||||||
|         <td>{% trans "Quantity" %}</td> |  | ||||||
|         <td>{% decimal item.quantity %} {% if item.part.units %}{{ item.part.units }}{% endif %}</td> |  | ||||||
|     </tr> |  | ||||||
|     {% endif %} |  | ||||||
|     {% if item.customer %} |     {% if item.customer %} | ||||||
|     <tr> |     <tr> | ||||||
|         <td><span class='fas fa-user-tie'></span></td> |         <td><span class='fas fa-user-tie'></span></td> | ||||||
| @@ -374,39 +395,6 @@ | |||||||
|         <td><a href="{% url 'supplier-part-detail' item.supplier_part.id %}">{{ item.supplier_part.SKU }}</a></td> |         <td><a href="{% url 'supplier-part-detail' item.supplier_part.id %}">{{ item.supplier_part.SKU }}</a></td> | ||||||
|     </tr> |     </tr> | ||||||
|     {% endif %} |     {% endif %} | ||||||
|     {% if item.expiry_date %} |  | ||||||
|     <tr> |  | ||||||
|         <td><span class='fas fa-calendar-alt{% if item.is_expired %} icon-red{% endif %}'></span></td> |  | ||||||
|         <td>{% trans "Expiry Date" %}</td> |  | ||||||
|         <td> |  | ||||||
|             {{ item.expiry_date }} |  | ||||||
|             {% if item.is_expired %} |  | ||||||
|             <span title='{% blocktrans %}This StockItem expired on {{ item.expiry_date }}{% endblocktrans %}' class='badge rounded-pill bg-danger'>{% trans "Expired" %}</span> |  | ||||||
|             {% elif item.is_stale %} |  | ||||||
|             <span title='{% blocktrans %}This StockItem expires on {{ item.expiry_date }}{% endblocktrans %}' class='badge rounded-pill bg-warning'>{% trans "Stale" %}</span> |  | ||||||
|             {% endif %} |  | ||||||
|         </td> |  | ||||||
|     </tr> |  | ||||||
|     {% endif %} |  | ||||||
|     <tr> |  | ||||||
|         <td><span class='fas fa-calendar-alt'></span></td> |  | ||||||
|         <td>{% trans "Last Updated" %}</td> |  | ||||||
|         <td>{{ item.updated }}</td> |  | ||||||
|     </tr> |  | ||||||
|     <tr> |  | ||||||
|         <td><span class='fas fa-calendar-alt'></span></td> |  | ||||||
|         <td>{% trans "Last Stocktake" %}</td> |  | ||||||
|         {% if item.stocktake_date %} |  | ||||||
|         <td>{{ item.stocktake_date }} <span class='badge badge-right rounded-pill bg-dark'>{{ item.stocktake_user }}</span></td> |  | ||||||
|         {% else %} |  | ||||||
|         <td><em>{% trans "No stocktake performed" %}</em></td> |  | ||||||
|         {% endif %} |  | ||||||
|     </tr> |  | ||||||
|     <tr> |  | ||||||
|         <td><span class='fas fa-info'></span></td> |  | ||||||
|         <td>{% trans "Status" %}</td> |  | ||||||
|         <td>{% stock_status_label item.status %}</td> |  | ||||||
|     </tr> |  | ||||||
|     {% if item.hasRequiredTests %} |     {% if item.hasRequiredTests %} | ||||||
|     <tr> |     <tr> | ||||||
|         <td><span class='fas fa-vial'></span></td> |         <td><span class='fas fa-vial'></span></td> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user