Skip to content
Snippets Groups Projects
Commit 161fb1e8 authored by Albert Feghaly's avatar Albert Feghaly
Browse files

Add delete button to labs

parent 0a734cfd
No related branches found
No related tags found
1 merge request!93Resolve "Add ability to delete lab if no cascade event is triggered"
...@@ -25,7 +25,7 @@ python -m venv .venv ...@@ -25,7 +25,7 @@ python -m venv .venv
# Activate venv # Activate venv
source .venv/bin/activate source .venv/bin/activate
pip install --upgrade pip # update pip version to latest pip install --upgrade pip wheel # update pip version to latest
pip install -r requirements.txt pip install -r requirements.txt
...@@ -111,7 +111,7 @@ git clone git@gitlab.iric.ca:bioinfo_iric/iric-data.git ...@@ -111,7 +111,7 @@ git clone git@gitlab.iric.ca:bioinfo_iric/iric-data.git
cd cd
python3 -m venv .venv_local python3 -m venv .venv_local
source /var/www/private/iric-data/.venv/bin/activate source /var/www/private/iric-data/.venv/bin/activate
pip install --upgrade pip pip install --upgrade pip wheel
pip install -r requirements.txt pip install -r requirements.txt
module add node module add node
......
...@@ -69,4 +69,5 @@ def create_lab_group(sender, instance, created, **kwargs): ...@@ -69,4 +69,5 @@ def create_lab_group(sender, instance, created, **kwargs):
def delete_lab_group(sender, instance, **kwargs): def delete_lab_group(sender, instance, **kwargs):
""" Create Permission Group for Lab """ Create Permission Group for Lab
""" """
Group.objects.delete(name=instance.ldap) if instance.ldap is not None:
Group.objects.get(name=instance.ldap).delete()
...@@ -39,7 +39,7 @@ from .views.secure.institution import (InstitutionCreateView, ...@@ -39,7 +39,7 @@ from .views.secure.institution import (InstitutionCreateView,
InstitutionJSONListView, InstitutionJSONListView,
InstitutionUpdateView, InstitutionView) InstitutionUpdateView, InstitutionView)
from .views.secure.lab import (LabCreateView, LabJSONListView, LabSwitchView, from .views.secure.lab import (LabCreateView, LabJSONListView, LabSwitchView,
LabUpdateView, LabView) LabUpdateView, LabDeleteView, LabView)
from .views.secure.login_success import LoginSuccess from .views.secure.login_success import LoginSuccess
from .views.secure.settings import AdminSettingsView, change_password from .views.secure.settings import AdminSettingsView, change_password
from .views.secure.sharegroups import (AdminShareGroupCreateView, from .views.secure.sharegroups import (AdminShareGroupCreateView,
...@@ -164,6 +164,7 @@ urlpatterns = [ ...@@ -164,6 +164,7 @@ urlpatterns = [
path('secure/admin/labs/list/json/', LabJSONListView.as_view(), name='admin.labs-json-list'), path('secure/admin/labs/list/json/', LabJSONListView.as_view(), name='admin.labs-json-list'),
path('secure/admin/labs/create/', LabCreateView.as_view(), name="admin.lab-create"), path('secure/admin/labs/create/', LabCreateView.as_view(), name="admin.lab-create"),
path('secure/admin/labs/update/<int:pk>', LabUpdateView.as_view(), name="admin.lab-update"), path('secure/admin/labs/update/<int:pk>', LabUpdateView.as_view(), name="admin.lab-update"),
path('secure/admin/labs/delete/<int:pk>', LabDeleteView.as_view(), name="admin.lab-delete"),
path('secure/labs/switch', LabSwitchView.as_view(), name='switch-labs'), path('secure/labs/switch', LabSwitchView.as_view(), name='switch-labs'),
# Institutions # Institutions
......
...@@ -3,14 +3,14 @@ from django.template.loader import render_to_string ...@@ -3,14 +3,14 @@ from django.template.loader import render_to_string
from django.urls import reverse_lazy, reverse from django.urls import reverse_lazy, reverse
from django.utils.translation import ugettext from django.utils.translation import ugettext
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import CreateView, TemplateView, UpdateView from django.views.generic import CreateView, TemplateView, UpdateView, DeleteView
from django.views.generic.edit import BaseFormView from django.views.generic.edit import BaseFormView
from ...forms import LabForm, LabSelectionForm from ...forms import LabForm, LabSelectionForm
from ...models import Lab from ...models import Lab
from ...views import (ActivePageViewMixin, AjaxDatatableBackboneMixin, from ...views import (ActivePageViewMixin, AjaxDatatableBackboneMixin,
CreateViewMixin, JSONListView, StaffViewMixin, CreateViewMixin, JSONListView, StaffViewMixin,
UpdateViewMixin) UpdateViewMixin, DeleteViewMixin)
class LabView(StaffViewMixin, ActivePageViewMixin, AjaxDatatableBackboneMixin, TemplateView): class LabView(StaffViewMixin, ActivePageViewMixin, AjaxDatatableBackboneMixin, TemplateView):
...@@ -30,14 +30,17 @@ class LabJSONListView(JSONListView): ...@@ -30,14 +30,17 @@ class LabJSONListView(JSONListView):
def get_rows(self): def get_rows(self):
rows = [] rows = []
for o in self.object_list: for o in self.object_list:
actions = {
'buttons': [
(reverse('admin.lab-update', args=[o.id]), 'fas fa-pencil-alt', ugettext('Edit')),
(reverse('admin.lab-delete', args=[o.id]), 'fas fa-trash-alt', ugettext('Delete Lab'), 'danger')
]}
rows.append([ rows.append([
o.name, o.name,
o.institution.abbr, o.institution.abbr,
render_to_string( render_to_string(
'portal/templates/portal/widgets/action_buttons.html', 'portal/templates/portal/widgets/action_buttons.html',
{'buttons': [ actions
(reverse_lazy('admin.lab-update', args=[o.id]), 'fas fa-pencil-alt', ugettext('Edit'))
]}
) )
]) ])
...@@ -60,6 +63,14 @@ class LabUpdateView(StaffViewMixin, UpdateViewMixin, UpdateView): ...@@ -60,6 +63,14 @@ class LabUpdateView(StaffViewMixin, UpdateViewMixin, UpdateView):
active_page = 'labs' active_page = 'labs'
class LabDeleteView(StaffViewMixin, DeleteViewMixin, DeleteView):
model = Lab
form_class = LabForm
success_url = reverse_lazy('admin.labs')
page_title = _('Delete Lab')
active_page = 'labs'
class LabSwitchView(LoginRequiredMixin, BaseFormView): class LabSwitchView(LoginRequiredMixin, BaseFormView):
form_class = LabSelectionForm form_class = LabSelectionForm
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment