Merge of cable additions

This commit is contained in:
Matthew Smith
2019-10-14 00:09:33 +01:00
6 changed files with 37 additions and 10 deletions

View File

@@ -121,8 +121,8 @@ class Command(BaseCommand):
self.keyholder_group = Group.objects.create(name='Keyholders') self.keyholder_group = Group.objects.create(name='Keyholders')
self.finance_group = Group.objects.create(name='Finance') self.finance_group = Group.objects.create(name='Finance')
keyholderPerms = ["add_event", "change_event", "view_event", "add_eventitem", "change_eventitem", "delete_eventitem", "add_organisation", "change_organisation", "view_organisation", "add_person", "change_person", "view_person", "view_profile", "add_venue", "change_venue", "view_venue"] keyholderPerms = ["add_event", "change_event", "view_event", "add_eventitem", "change_eventitem", "delete_eventitem", "add_organisation", "change_organisation", "view_organisation", "add_person", "change_person", "view_person", "view_profile", "add_venue", "change_venue", "view_venue", "add_asset", "change_asset", "delete_asset", "asset_finance"]
financePerms = ["change_event", "view_event", "add_eventitem", "change_eventitem", "add_invoice", "change_invoice", "view_invoice", "add_organisation", "change_organisation", "view_organisation", "add_payment", "change_payment", "delete_payment", "add_person", "change_person", "view_person"] financePerms = ["change_event", "view_event", "add_eventitem", "change_eventitem", "add_invoice", "change_invoice", "view_invoice", "add_organisation", "change_organisation", "view_organisation", "add_payment", "change_payment", "delete_payment", "add_person", "change_person", "view_person", "asset_finance", "change_asset"]
for permId in keyholderPerms: for permId in keyholderPerms:
self.keyholder_group.permissions.add(Permission.objects.get(codename=permId)) self.keyholder_group.permissions.add(Permission.objects.get(codename=permId))

View File

@@ -0,0 +1,17 @@
# Generated by Django 2.0.13 on 2019-10-13 23:12
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('assets', '0011_auto_20191013_2247'),
]
operations = [
migrations.AlterModelOptions(
name='asset',
options={'permissions': (('asset_finance', 'Can see financial data for assets'),)},
),
]

View File

@@ -49,7 +49,11 @@ class Connector(models.Model):
class Asset(models.Model): class Asset(models.Model):
class Meta:
permissions = (
('asset_finance', 'Can see financial data for assets'),
)
parent = models.ForeignKey(to='self', related_name='asset_parent', blank=True, null=True, on_delete=models.SET_NULL) parent = models.ForeignKey(to='self', related_name='asset_parent', blank=True, null=True, on_delete=models.SET_NULL)
asset_id = models.CharField(max_length=10, unique=True) asset_id = models.CharField(max_length=10, unique=True)
description = models.CharField(max_length=120) description = models.CharField(max_length=120)

View File

@@ -32,9 +32,11 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
{% if perms.asset.asset_financial %}
<div class="col-md-6"> <div class="col-md-6">
{% include 'partials/purchasedetails_form.html' %} {% include 'partials/purchasedetails_form.html' %}
</div> </div>
{%endif%}
<div class="col-md-6" <div class="col-md-6"
{% if not object.is_cable %} hidden="true" {% endif %} id="cable-table"> {% if not object.is_cable %} hidden="true" {% endif %} id="cable-table">
{% include 'partials/cable_form.html' %} {% include 'partials/cable_form.html' %}

View File

@@ -16,10 +16,13 @@
<td style="vertical-align: middle;">{{ item.category }}</td> <td style="vertical-align: middle;">{{ item.category }}</td>
<td style="vertical-align: middle;">{{ item.status }}</td> <td style="vertical-align: middle;">{{ item.status }}</td>
<td> <td>
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<a type="button" class="btn btn-default btn-sm" href="{% url 'asset_detail' item.pk %}"><i class="glyphicon glyphicon-eye-open"></i> View</a> <a type="button" class="btn btn-default btn-sm" href="{% url 'asset_detail' item.pk %}"><i class="glyphicon glyphicon-eye-open"></i> View</a>
{% if perms.assets.change_asset %}
<a type="button" class="btn btn-default btn-sm" href="{% url 'asset_update' item.pk %}"><i class="glyphicon glyphicon-edit"></i> Edit</a> <a type="button" class="btn btn-default btn-sm" href="{% url 'asset_update' item.pk %}"><i class="glyphicon glyphicon-edit"></i> Edit</a>
<a type="button" class="btn btn-default btn-sm" href="{% url 'asset_update' item.pk %}?duplicate=true"><i class="glyphicon glyphicon-duplicate"></i> Duplicate</a> <a type="button" class="btn btn-default btn-sm" href="{% url 'asset_update' item.pk %}?duplicate=true"><i class="glyphicon glyphicon-duplicate"></i> Duplicate</a>
{% endif %}
</div> </div>
</td> </td>
</tr> </tr>

View File

@@ -2,25 +2,26 @@ from django.urls import path, include
from rest_framework import routers from rest_framework import routers
from assets import views, api from assets import views, api
from PyRIGS.decorators import permission_required_with_403
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'api/assets', api.AssetViewSet) router.register(r'api/assets', api.AssetViewSet)
urlpatterns = [ urlpatterns = [
# path('', views.Index.as_view(), name='index'),
path('', views.AssetList.as_view(), name='index'), path('', views.AssetList.as_view(), name='index'),
path('asset/list/', views.AssetList.as_view(), name='asset_list'), path('asset/list/', views.AssetList.as_view(), name='asset_list'),
path('asset/<int:pk>/', views.AssetDetail.as_view(), name='asset_detail'), path('asset/<int:pk>/', views.AssetDetail.as_view(), name='asset_detail'),
path('asset/create/', views.AssetCreate.as_view(), name='asset_create'), path('asset/create/', permission_required_with_403('assets.create_asset')(views.AssetCreate.as_view()), name='asset_create'),
path('asset/<int:pk>/edit/', views.AssetEdit.as_view(), name='asset_update'), path('asset/<int:pk>/edit/', permission_required_with_403('assets.change_asset')(views.AssetEdit.as_view()), name='asset_update'),
path('asset/<int:pk>/duplicate/', views.AssetDuplicate.as_view(), name='asset_duplicate'), path('asset/<int:pk>/duplicate/', permission_required_with_403('assets.create_asset')(views.AssetDuplicate.as_view()), name='asset_duplicate'),
path('asset/delete/', views.asset_delete, name='ajax_asset_delete'), path('asset/delete/', permission_required_with_403('assets.delete_asset')(views.asset_delete), name='ajax_asset_delete'),
path('asset/search/', views.AssetSearch.as_view(), name='asset_search_json'), path('asset/search/', views.AssetSearch.as_view(), name='asset_search_json'),
path('supplier/list', views.SupplierList.as_view(), name='supplier_list'), path('supplier/list', views.SupplierList.as_view(), name='supplier_list'),
path('supplier/<int:pk>', views.SupplierDetail.as_view(), name='supplier_detail'), path('supplier/<int:pk>', views.SupplierDetail.as_view(), name='supplier_detail'),
path('supplier/create', views.SupplierCreate.as_view(), name='supplier_create'), path('supplier/create', permission_required_with_403('assets.create_supplier')(views.SupplierCreate.as_view()), name='supplier_create'),
path('supplier/<int:pk>/edit', views.SupplierUpdate.as_view(), name='supplier_update'), path('supplier/<int:pk>/edit', permission_required_with_403('assets.edit_supplier')(views.SupplierUpdate.as_view()), name='supplier_update'),
path('', include(router.urls)), path('', include(router.urls)),
] ]