Added edit/create asset
This commit is contained in:
		@@ -3,6 +3,7 @@ from django.conf import settings
 | 
				
			|||||||
from django.contrib.auth import get_user_model
 | 
					from django.contrib.auth import get_user_model
 | 
				
			||||||
# from django.contrib.auth.models import User
 | 
					# from django.contrib.auth.models import User
 | 
				
			||||||
from container.models import Container
 | 
					from container.models import Container
 | 
				
			||||||
 | 
					from django.urls import reverse
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_sentinel_user():
 | 
					def get_sentinel_user():
 | 
				
			||||||
    return get_user_model().objects.get_or_create(username='deleted')[0]
 | 
					    return get_user_model().objects.get_or_create(username='deleted')[0]
 | 
				
			||||||
@@ -16,3 +17,6 @@ class Asset(models.Model):
 | 
				
			|||||||
    changed_ts = models.DateTimeField('datetime updated', auto_now=True)
 | 
					    changed_ts = models.DateTimeField('datetime updated', auto_now=True)
 | 
				
			||||||
    changed_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user), related_name='changed_assets')
 | 
					    changed_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user), related_name='changed_assets')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_absolute_url(self):
 | 
				
			||||||
 | 
					        return reverse('asset:detail', kwargs={'pk': self.pk})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,18 +5,23 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block content %}
 | 
					{% block content %}
 | 
				
			||||||
<div class="container">
 | 
					<div class="container">
 | 
				
			||||||
<form action="{% url 'asset:asset-save' asset.id %}" method="post">
 | 
					<form method="post">
 | 
				
			||||||
{% csrf_token %}
 | 
					{% csrf_token %}
 | 
				
			||||||
 | 
					<!--
 | 
				
			||||||
  <div class="row">
 | 
					  <div class="row">
 | 
				
			||||||
    <div class="col-sm-12">
 | 
					    <div class="col-sm-12">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <legend><h2>Asset: {{ asset.named_id }}</h2></legend>
 | 
					        <legend><h2>Asset: {{ asset.named_id }}</h2></legend>
 | 
				
			||||||
        {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
 | 
					        {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
 | 
				
			||||||
 | 
					        <div><input type="text" name="named_id" id="named_id" value="{{ asset.named_id }}" max_length="60" size="60"> <label for="named_id">ID</label></div>
 | 
				
			||||||
        <div><input type="text" name="description" id="description" value="{{ asset.description }}" max_length="250" size="80"> <label for="description">Beschreibung</label></div>
 | 
					        <div><input type="text" name="description" id="description" value="{{ asset.description }}" max_length="250" size="80"> <label for="description">Beschreibung</label></div>
 | 
				
			||||||
        <div><input type="number" name="quantity" id="quantity" value="{{ asset.quantity }}" size="6" min="0" max="99999"><label for="quantity">Quantity</label></div>
 | 
					        <div><input type="number" name="quantity" id="quantity" value="{{ asset.quantity }}" size="6" min="0" max="99999"><label for="quantity">Quantity</label></div>
 | 
				
			||||||
        <div><input type="submit" class="btn btn-primary" value="save"></div>
 | 
					        <div><input type="submit" class="btn btn-primary" value="save"></div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					{{ form.as_p }}
 | 
				
			||||||
 | 
					        <div><input type="submit" class="btn btn-primary" value="save"></div>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,17 @@
 | 
				
			|||||||
      <p>No new assets are available.</p>
 | 
					      <p>No new assets are available.</p>
 | 
				
			||||||
  {% endif %}
 | 
					  {% endif %}
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div>
 | 
					  <!-- Action buttons -->
 | 
				
			||||||
 | 
					  <div class="row">
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    <div class="col-sm-12">
 | 
				
			||||||
 | 
					      <a class="btn btn-primary" href="{% url 'asset:add' %}" role="button">+ Asset</a>
 | 
				
			||||||
 | 
					      <a class="btn btn-primary" href="{% url 'container:add' %}" role="button">+ Container</a>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					  <!-- End Action buttons -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
{% endblock content %}
 | 
					{% endblock content %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,8 +5,9 @@ from asset.views import AssetCreateView, AssetDeleteView, AssetUpdateView, Asset
 | 
				
			|||||||
app_name = 'asset'
 | 
					app_name = 'asset'
 | 
				
			||||||
urlpatterns = [
 | 
					urlpatterns = [
 | 
				
			||||||
    path('', AssetIndexView.as_view(), name='index'),
 | 
					    path('', AssetIndexView.as_view(), name='index'),
 | 
				
			||||||
    path('add/', AssetCreateView.as_view(), name='asset-add'),
 | 
					    path('add/', AssetCreateView.as_view(), name='add'),
 | 
				
			||||||
    path('<int:pk>/', AssetUpdateView.as_view(), name='asset-update'),
 | 
					    path('<int:pk>/', AssetUpdateView.as_view(), name='asset-update'),
 | 
				
			||||||
 | 
					    path('<int:pk>/', AssetUpdateView.as_view(), name='detail'),
 | 
				
			||||||
    path('<int:asset_id>/save', views.asset_save, name='asset-save'),
 | 
					    path('<int:asset_id>/save', views.asset_save, name='asset-save'),
 | 
				
			||||||
    path('<int:pk>/delete/', AssetDeleteView.as_view(), name='asset-delete'),
 | 
					    path('<int:pk>/delete/', AssetDeleteView.as_view(), name='asset-delete'),
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,10 +9,19 @@ class AssetCreateView(CreateView):
 | 
				
			|||||||
    model = Asset
 | 
					    model = Asset
 | 
				
			||||||
    fields = ['named_id', 'description', 'quantity']
 | 
					    fields = ['named_id', 'description', 'quantity']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def form_valid(self, form):
 | 
				
			||||||
 | 
					        form.instance.changed_by = self.request.user
 | 
				
			||||||
 | 
					        form.instance.created_by = self.request.user
 | 
				
			||||||
 | 
					        return super().form_valid(form)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AssetUpdateView(UpdateView):
 | 
					class AssetUpdateView(UpdateView):
 | 
				
			||||||
    model = Asset
 | 
					    model = Asset
 | 
				
			||||||
    fields = ['named_id', 'description', 'quantity']
 | 
					    fields = ['named_id', 'description', 'quantity']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def form_valid(self, form):
 | 
				
			||||||
 | 
					        form.instance.changed_by = self.request.user
 | 
				
			||||||
 | 
					        return super().form_valid(form)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AssetDeleteView(DeleteView):
 | 
					class AssetDeleteView(DeleteView):
 | 
				
			||||||
    model = Asset
 | 
					    model = Asset
 | 
				
			||||||
    success_url = reverse_lazy('asset-index')
 | 
					    success_url = reverse_lazy('asset-index')
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user