mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-25 17:32:16 +00:00
Added views
This commit is contained in:
15
urls.py
15
urls.py
@@ -2,10 +2,13 @@ from django.urls import path
|
|||||||
from assets import views
|
from assets import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.Index.as_view(), name='index'),
|
# path('', views.Index.as_view(), name='index'),
|
||||||
path('assets/', views.AssetList.as_view(), name='asset_list'),
|
path('', views.AssetList.as_view(), name='index'),
|
||||||
path('assets/<int:pk>/', views.AssetDetail.as_view(), name='asset_detail'),
|
path('asset/list/', views.AssetList.as_view(), name='asset_list'),
|
||||||
path('assets/create', views.AssetCreate.as_view(), name='asset_create'),
|
path('asset/<int:pk>/', views.AssetDetail.as_view(), name='asset_detail'),
|
||||||
path('assets/<int:pk>/update', views.AssetUpdate.as_view(), name='asset_update'),
|
path('asset/create/', views.AssetEdit.as_view(), name='asset_create'),
|
||||||
path('assets/<int:pk>/delete', views.AssetDelete.as_view(), name='asset_delete'),
|
path('asset/<int:pk>/edit/', views.AssetEdit.as_view(), name='asset_update'),
|
||||||
|
path('asset/delete/', views.asset_delete, name='ajax_asset_delete'),
|
||||||
|
path('asset/filter/', views.asset_filter, name='ajax_asset_filter'),
|
||||||
|
path('asset/update/', views.asset_update, name='ajax_asset_update'),
|
||||||
]
|
]
|
||||||
|
|||||||
135
views.py
135
views.py
@@ -1,42 +1,133 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render, get_object_or_404
|
||||||
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
|
from django.http import HttpResponse, QueryDict
|
||||||
|
from django.core import serializers
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
from django.urls import reverse_lazy
|
from django.contrib.auth import views as auth_views
|
||||||
from assets import models
|
from django.urls import reverse_lazy, reverse
|
||||||
|
from django.db.models import Q
|
||||||
|
import datetime
|
||||||
|
from dateutil import parser
|
||||||
|
# import json
|
||||||
|
import simplejson as json
|
||||||
|
from assets import models, forms
|
||||||
|
|
||||||
|
|
||||||
class Index(generic.TemplateView):
|
class Login(auth_views.LoginView):
|
||||||
|
template_name = 'registration/login.html'
|
||||||
|
|
||||||
|
|
||||||
|
class Logout(auth_views.LogoutView):
|
||||||
|
template_name = 'registration/logout.html'
|
||||||
|
|
||||||
|
|
||||||
|
class PasswordChange(auth_views.PasswordChangeView):
|
||||||
|
template_name = 'registration/password_change.html'
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return reverse_lazy('profile_detail', kwargs={'pk': self.request.user.id})
|
||||||
|
|
||||||
|
|
||||||
|
class Index(LoginRequiredMixin, generic.TemplateView):
|
||||||
template_name = 'index.html'
|
template_name = 'index.html'
|
||||||
|
|
||||||
|
|
||||||
class AssetList(generic.ListView):
|
class AssetList(LoginRequiredMixin, generic.ListView):
|
||||||
model = models.Asset
|
model = models.Asset
|
||||||
template_name = 'asset_list.html'
|
template_name = 'asset_list.html'
|
||||||
|
paginate_by = 40
|
||||||
|
ordering = ['-pk']
|
||||||
|
|
||||||
|
|
||||||
class AssetDetail(generic.DetailView):
|
class AssetDetail(LoginRequiredMixin, generic.DetailView):
|
||||||
model = models.Asset
|
model = models.Asset
|
||||||
template_name = 'asset_detail.html'
|
template_name = 'asset_update.html'
|
||||||
|
|
||||||
|
|
||||||
class AssetCreate(generic.CreateView):
|
# class AssetCreate(LoginRequiredMixin, generic.TemplateView):
|
||||||
model = models.Asset
|
# fields = '__all__'
|
||||||
fields = '__all__'
|
# template_name = 'asset_update.html'
|
||||||
template_name = 'asset_form.html'
|
# # success_url = reverse_lazy('asset_list')
|
||||||
# success_url = reverse_lazy('asset_list')
|
|
||||||
|
|
||||||
|
|
||||||
class AssetUpdate(generic.UpdateView):
|
class AssetEdit(LoginRequiredMixin, generic.TemplateView):
|
||||||
model = models.Asset
|
template_name = 'asset_update.html'
|
||||||
fields = '__all__'
|
|
||||||
template_name = 'asset_form.html'
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super(AssetUpdate, self).get_context_data(**kwargs)
|
context = super(AssetEdit, self).get_context_data(**kwargs)
|
||||||
context['form_header'] = 'Update'
|
if self.kwargs:
|
||||||
|
context['object'] = get_object_or_404(models.Asset, pk=self.kwargs['pk'])
|
||||||
|
context['form'] = forms.AssetForm
|
||||||
|
# context['asset_names'] = models.Asset.objects.values_list('asset_id', 'description').order_by('-date_acquired')[]
|
||||||
|
context['edit'] = True
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class AssetDelete(generic.DeleteView):
|
@login_required()
|
||||||
model = models.Asset
|
def asset_update(request):
|
||||||
template_name = 'confirm_delete.html'
|
context = dict()
|
||||||
success_url = reverse_lazy('asset_list')
|
|
||||||
|
if request.method == 'POST' and request.is_ajax():
|
||||||
|
defaults = QueryDict(request.POST['form'].encode('ASCII')).dict()
|
||||||
|
defaults.pop('csrfmiddlewaretoken')
|
||||||
|
|
||||||
|
asset_pk = int(defaults.pop('id'))
|
||||||
|
|
||||||
|
if defaults['date_acquired']:
|
||||||
|
defaults['date_acquired'] = parser.parse(defaults.pop('date_acquired'))
|
||||||
|
else:
|
||||||
|
defaults['date_acquired'] = None
|
||||||
|
|
||||||
|
if defaults['date_sold']:
|
||||||
|
defaults['date_sold'] = parser.parse(defaults.pop('date_sold'))
|
||||||
|
else:
|
||||||
|
defaults['date_sold'] = None
|
||||||
|
|
||||||
|
# if defaults['parent']:
|
||||||
|
# defaults['parent'] = models.Asset.objects.get(asset_id=defaults.pop('parent'))
|
||||||
|
|
||||||
|
form = forms.AssetForm(defaults)
|
||||||
|
context['valid'] = form.is_valid()
|
||||||
|
context['errors'] = form.errors.as_json()
|
||||||
|
|
||||||
|
if asset_pk == 0:
|
||||||
|
asset = models.Asset.objects.create(**form.cleaned_data)
|
||||||
|
else:
|
||||||
|
asset, created = models.Asset.objects.update_or_create(pk=asset_pk, defaults=form.cleaned_data)
|
||||||
|
|
||||||
|
context['url'] = reverse('asset_detail', args=[asset.pk])
|
||||||
|
|
||||||
|
return HttpResponse(json.dumps(context), content_type='application/json')
|
||||||
|
|
||||||
|
|
||||||
|
@login_required()
|
||||||
|
def asset_delete(request):
|
||||||
|
context = dict()
|
||||||
|
if request.method == 'POST' and request.is_ajax():
|
||||||
|
asset = get_object_or_404(models.Asset, pk=request.POST.get('asset_id', None))
|
||||||
|
asset.delete()
|
||||||
|
|
||||||
|
context['url'] = reverse('asset_list')
|
||||||
|
|
||||||
|
return HttpResponse(json.dumps(context), content_type='application/json')
|
||||||
|
|
||||||
|
|
||||||
|
@login_required()
|
||||||
|
def asset_filter(request):
|
||||||
|
context = dict()
|
||||||
|
|
||||||
|
if request.method == 'POST' and request.is_ajax():
|
||||||
|
defaults = QueryDict(request.POST['form'].encode('ASCII')).dict()
|
||||||
|
defaults.pop('csrfmiddlewaretoken')
|
||||||
|
|
||||||
|
context['object_list'] = models.Asset.objects.filter(
|
||||||
|
Q(pk__icontains=defaults.get('asset_id')) |
|
||||||
|
Q(asset_id__icontains=defaults.get('asset_id'))
|
||||||
|
)
|
||||||
|
|
||||||
|
if request.POST.get('sender', None) == 'asset_update':
|
||||||
|
return render(request, template_name='asset_update_search_results.html', context=context)
|
||||||
|
else:
|
||||||
|
return render(request, template_name='asset_list_table_body.html', context=context)
|
||||||
|
|||||||
Reference in New Issue
Block a user