def __init__(self): @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_object'), name='dispatch') class ObjectCreateView(CreateView): def get_success_url(self, *args, **kwargs): redirect = reverse_lazy('laboratory:objectview_list', args=( self.lab,)) + "?type_id=" + self.object.type return redirect def get_form_kwargs(self): kwargs = super(ObjectCreateView, self).get_form_kwargs() kwargs['request'] = self.request return kwargs self.create = view_user_group_perms(login_required(ObjectCreateView.as_view( model=self.model, form_class=ObjectForm, template_name=self.template_name_base + "_form.html" )), 'laboratory.add_object') @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.change_object'), name='dispatch') class ObjectUpdateView(UpdateView): def get_success_url(self): return reverse_lazy( 'laboratory:objectview_list', args=(self.lab,)) + "?type_id=" + self.get_object().type def get_form_kwargs(self): kwargs = super(ObjectUpdateView, self).get_form_kwargs() kwargs['request'] = self.request return kwargs self.edit = view_user_group_perms(login_required(ObjectUpdateView.as_view( model=self.model, form_class=ObjectForm, template_name=self.template_name_base + "_form.html" )), 'laboratory.change_object') @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.delete_object'), name='dispatch') class ObjectDeleteView(DeleteView): def get_success_url(self): return reverse_lazy('laboratory:objectview_list', args=(self.lab,)) self.delete = view_user_group_perms(login_required(ObjectDeleteView.as_view( model=self.model, success_url="/", template_name=self.template_name_base + "_delete.html" )), 'laboratory.delete_object') @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.view_object'), name='dispatch') class ObjectListView(ListView): def get_queryset(self): query = ListView.get_queryset(self) if 'type_id' in self.request.GET: self.type_id = self.request.GET.get('type_id', '') if self.type_id: filters = Q(type=self.type_id) query = query.filter(filters) else: self.type_id = '' if 'q' in self.request.GET: self.q = self.request.GET.get('q', '') if self.q: query = query.filter( Q(name__icontains=self.q) | Q( code__icontains=self.q) ) else: self.q = '' return query def get_context_data(self, **kwargs): context = ListView.get_context_data(self, **kwargs) context['q'] = self.q or '' context['type_id'] = self.type_id or '' return context self.list = view_user_group_perms(login_required(ObjectListView.as_view( model=self.model, paginate_by=10, ordering=['code'], template_name=self.template_name_base + "_list.html" )), 'laboratory.view_object')
from django.urls import reverse_lazy from django.utils import timezone from django.utils.decorators import method_decorator from xhtml2pdf import pisa from laboratory.views.reports import link_callback from laboratory.decorators import user_group_perms from laboratory.views import djgeneric from risk_management.forms import IncidentReportForm from risk_management.models import IncidentReport from django.utils.translation import ugettext as _ @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='risk_management.view_incidentreport'), name='dispatch') class IncidentReportList(djgeneric.ListView): model = IncidentReport ordering = 'pk' ordering = ['incident_date'] paginate_by = 20 def get_queryset(self): queryset = super().get_queryset() if 'q' in self.request.GET: q = self.request.GET['q'] queryset = queryset.filter( Q(short_description__icontains=q) | Q(laboratories__name__icontains=q)) return queryset
html = template.render(context=context) response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="hcode_report.pdf"' pisaStatus = pisa.CreatePDF(html, dest=response, link_callback=link_callback, encoding='utf-8') if pisaStatus.err: return HttpResponse('We had some errors with code %s <pre>%s</pre>' % (pisaStatus.err, html)) return response @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.view_report'), name='dispatch') class ObjectList(ListView): model = Object template_name = 'laboratory/report_object_list.html' def get_type(self): if 'type_id' in self.request.GET: self.type_id = self.request.GET.get('type_id', '') if self.type_id: return self.type_id else: return None else: return None
class ShelfObjectFormUpdate(forms.ModelForm): col = forms.IntegerField(widget=forms.HiddenInput, required=False) row = forms.IntegerField(widget=forms.HiddenInput, required=False) class Meta: model = ShelfObject fields = ['shelf', 'quantity', 'limit_quantity', 'measurement_unit'] widgets = { 'shelf': forms.HiddenInput, } @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_shelfobject'), name='dispatch') class ShelfObjectCreate(AJAXMixin, CreateView): model = ShelfObject form_class = ShelfObjectForm success_url = "/" def get_success_url(self): return reverse_lazy('laboratory:list_shelf', args=(self.lab,)) def form_valid(self, form): self.object = form.save() row = form.cleaned_data['row'] col = form.cleaned_data['col'] return { 'inner-fragments': { '#row_%d_col_%d_shelf_%d' % (row, col, self.object.shelf.pk): list_shelfobject_render(
class ShelfForm(forms.ModelForm): col = forms.IntegerField(widget=forms.HiddenInput) row = forms.IntegerField(widget=forms.HiddenInput) class Meta: model = Shelf fields = ['name', 'type', 'furniture'] widgets = { 'furniture': forms.HiddenInput() } @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_shelf'), name='dispatch') class ShelfCreate(AJAXMixin, CreateView): model = Shelf success_url = "/" form_class = ShelfForm def get_form_kwargs(self): kwargs = CreateView.get_form_kwargs(self) kwargs['initial']['furniture'] = self.request.GET.get('furniture') kwargs['initial']['col'] = self.request.GET.get('col') kwargs['initial']['row'] = self.request.GET.get('row') return kwargs def form_valid(self, form): self.object = form.save(commit=False) furniture = form.cleaned_data['furniture']
def del_admins_user(request, pk, pk_user): lab = get_object_or_404(Laboratory, pk=pk) lab.lab_admins.filter(pk=pk_user).delete() return render_admins_lab(request, lab.laboratorists.all(), lab) @ajax def admin_users(request, pk): lab = get_object_or_404(Laboratory, pk=pk) user_org = OrganizationStructure.os_manager.filter_user(request.user) return render_admins_lab(request, lab.laboratorists.all(), lab) @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.change_laboratory'), name='dispatch') class LaboratoryEdit(UpdateView): model = Laboratory template_name = 'laboratory/edit.html' #fields = ['name', 'phone_number', 'location', 'geolocation'] form_class = LaboratoryCreate def get_context_data(self, **kwargs): context = UpdateView.get_context_data(self, **kwargs) context['laboratory'] = self.object.pk return context def get_form_kwargs(self): kwargs = super(LaboratoryEdit, self).get_form_kwargs() kwargs['user'] = self.request.user
class ShelfObjectFormUpdate(forms.ModelForm): col = forms.IntegerField(widget=forms.HiddenInput, required=False) row = forms.IntegerField(widget=forms.HiddenInput, required=False) class Meta: model = ShelfObject fields = ['shelf', 'quantity', 'limit_quantity', 'measurement_unit'] widgets = { 'shelf': forms.HiddenInput, } @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_shelfobject'), name='dispatch') class ShelfObjectCreate(AJAXMixin, CreateView): model = ShelfObject form_class = ShelfObjectForm success_url = "/" def get_success_url(self): return reverse_lazy('laboratory:list_shelf', args=(self.lab, )) def form_valid(self, form): self.object = form.save() row = form.cleaned_data['row'] col = form.cleaned_data['col'] return { 'inner-fragments': {
'laboratory': lab } html = template.render( context=context).encode("UTF-8") page = HTML(string=html, encoding='utf-8').write_pdf() response = HttpResponse(page, content_type='application/pdf') response[ 'Content-Disposition'] = 'attachment; filename="furniture_report.pdf"' return response @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.view_report'), name='dispatch') class ObjectList(ListView): model = Object template_name = 'laboratory/report_object_list.html' def get_type(self): if 'type_id' in self.request.GET: self.type_id = self.request.GET.get('type_id', '') if self.type_id: return self.type_id else: return None else: return None def get_queryset(self):
@ajax def del_admins_user(request, pk, pk_user): lab = get_object_or_404(Laboratory, pk=pk) lab.lab_admins.filter(pk=pk_user).delete() return render_admins_lab(request, lab.lab_admins.all(), lab) @ajax def admin_users(request, pk): lab = get_object_or_404(Laboratory, pk=pk) return render_admins_lab(request, lab.lab_admins.all(), lab) @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.change_laboratory'), name='dispatch') class LaboratoryEdit(UpdateView): model = Laboratory template_name = 'laboratory/edit.html' fields = ['name'] def get_context_data(self, **kwargs): context = UpdateView.get_context_data(self, **kwargs) context['laboratory'] = self.object.pk return context class LaboratoryView(object): model = Laboratory template_name_base = 'laboratory/laboratory_'
def __init__(self): @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_object'), name='dispatch') class ObjectCreateView(CreateView): def get_success_url(self, *args, **kwargs): redirect = reverse_lazy( 'laboratory:objectview_list', args=(self.lab, )) + "?type_id=" + self.object.type return redirect def get_form_kwargs(self): kwargs = super(ObjectCreateView, self).get_form_kwargs() kwargs['request'] = self.request return kwargs self.create = view_user_group_perms( login_required( ObjectCreateView.as_view( model=self.model, form_class=ObjectForm, template_name=self.template_name_base + "_form.html")), 'laboratory.add_object') @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.change_object'), name='dispatch') class ObjectUpdateView(UpdateView): def get_success_url(self): return reverse_lazy( 'laboratory:objectview_list', args=(self.lab, )) + "?type_id=" + self.get_object().type def get_form_kwargs(self): kwargs = super(ObjectUpdateView, self).get_form_kwargs() kwargs['request'] = self.request return kwargs self.edit = view_user_group_perms( login_required( ObjectUpdateView.as_view( model=self.model, form_class=ObjectForm, template_name=self.template_name_base + "_form.html")), 'laboratory.change_object') @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.delete_object'), name='dispatch') class ObjectDeleteView(DeleteView): def get_success_url(self): return reverse_lazy('laboratory:objectview_list', args=(self.lab, )) self.delete = view_user_group_perms( login_required( ObjectDeleteView.as_view( model=self.model, success_url="/", template_name=self.template_name_base + "_delete.html")), 'laboratory.delete_object') @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.view_object'), name='dispatch') class ObjectListView(ListView): def get_queryset(self): query = ListView.get_queryset(self) if 'type_id' in self.request.GET: self.type_id = self.request.GET.get('type_id', '') if self.type_id: filters = Q(type=self.type_id) query = query.filter(filters) else: self.type_id = '' if 'q' in self.request.GET: self.q = self.request.GET.get('q', '') if self.q: query = query.filter( Q(name__icontains=self.q) | Q(code__icontains=self.q)) else: self.q = '' return query def get_context_data(self, **kwargs): context = ListView.get_context_data(self, **kwargs) context['q'] = self.q or '' context['type_id'] = self.type_id or '' return context self.list = view_user_group_perms( login_required( ObjectListView.as_view(model=self.model, paginate_by=10, ordering=['code'], template_name=self.template_name_base + "_list.html")), 'laboratory.view_object')
from django.urls.base import reverse_lazy from django.utils.decorators import method_decorator from django.utils.translation import ugettext_lazy as _ from django_ajax.decorators import ajax from laboratory.models import Furniture, Laboratory, LaboratoryRoom from laboratory.shelf_utils import get_dataconfig #from laboratory.decorators import check_lab_permissions, user_lab_perms from .djgeneric import ListView, CreateView, UpdateView, DeleteView from laboratory.decorators import user_group_perms @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.do_report'), name='dispatch') class FurnitureReportView(ListView): model = Furniture template_name = "laboratory/report_furniture_list.html" def get_queryset(self): return Furniture.objects.filter(labroom__laboratory=self.lab) @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_furniture'), name='dispatch') class FurnitureCreateView(CreateView): model = Furniture fields = ("name", "type") def get(self, request, *args, **kwargs):
}, } class ShelfForm(forms.ModelForm): col = forms.IntegerField(widget=forms.HiddenInput) row = forms.IntegerField(widget=forms.HiddenInput) class Meta: model = Shelf fields = ['name', 'type', 'furniture'] widgets = {'furniture': forms.HiddenInput()} @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_shelf'), name='dispatch') class ShelfCreate(AJAXMixin, CreateView): model = Shelf success_url = "/" form_class = ShelfForm def get_form_kwargs(self): kwargs = CreateView.get_form_kwargs(self) kwargs['initial']['furniture'] = self.request.GET.get('furniture') kwargs['initial']['col'] = self.request.GET.get('col') kwargs['initial']['row'] = self.request.GET.get('row') return kwargs def form_valid(self, form): self.object = form.save(commit=False)
from django.contrib.auth.decorators import login_required from django.db.models import Q from django.urls import reverse_lazy from django.utils.decorators import method_decorator from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView from laboratory.decorators import user_group_perms from risk_management.forms import RiskZoneCreateForm from risk_management.models import RiskZone @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='risk_management.view_riskzone'), name='dispatch') class ListZone(ListView): model = RiskZone ordering = 'zone_type' ordering = ['priority', 'pk'] paginate_by = 20 def get_queryset(self): queryset = super().get_queryset() if 'q' in self.request.GET: q = self.request.GET['q'] queryset = queryset.filter( Q(name__icontains=q) | Q(laboratories__name__icontains=q)).distinct() return queryset def get_context_data(self, **kwargs): context = super(ListZone, self).get_context_data()
@author: natalia ''' from django.contrib.auth.decorators import login_required from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.urls import reverse_lazy from django.utils.decorators import method_decorator #from laboratory.decorators import check_lab_permissions, user_lab_perms from laboratory.views.djgeneric import CreateView, UpdateView, DeleteView from laboratory.models import ObjectFeatures from laboratory.decorators import user_group_perms @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_objectfeatures'), name='dispatch') class FeatureCreateView(CreateView): model = ObjectFeatures fields = '__all__' def get_context_data(self, **kwargs): paginator = Paginator(ObjectFeatures.objects.all().distinct(), 10) page = self.request.GET.get('page') context = super(FeatureCreateView, self).get_context_data(**kwargs) context['create'] = True try: context['object_list'] = paginator.page(page) except PageNotAnInteger:
'objform': objform, 'suschacform': suschacform, 'instance': instance }) @login_required(login_url='login') @user_group_perms(perm='laboratory.view_object') def sustance_list(request): #object_list = Object.objects.filter(type=Object.REACTIVE) return render(request, 'laboratory/sustance/list.html', { 'object_url': '#' }) @method_decorator(user_group_perms(perm='laboratory.delete_object'), name='dispatch') class SubstanceDelete(DeleteView): model = Object success_url = reverse_lazy('laboratory:sustance_list') template_name = 'laboratory/sustance/substance_deleteview.html' @method_decorator(user_group_perms(perm='laboratory.view_object'), name='dispatch') class SustanceListJson(BaseDatatableView): model = Object columns = ['id','name','cas_code','action'] max_display_length = 500 def filter_queryset(self, qs): qs = qs.filter(type=Object.REACTIVE) search = self.request.GET.get('search[value]', None)
@author: natalia ''' from django.contrib.auth.decorators import login_required from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.urls import reverse_lazy from django.utils.decorators import method_decorator #from laboratory.decorators import check_lab_permissions, user_lab_perms from laboratory.views.djgeneric import CreateView, UpdateView, DeleteView from laboratory.models import ObjectFeatures from laboratory.decorators import user_group_perms @method_decorator(login_required, name='dispatch') @method_decorator(user_group_perms(perm='laboratory.add_objectfeatures'), name='dispatch') class FeatureCreateView(CreateView): model = ObjectFeatures fields = '__all__' def get_context_data(self, **kwargs): paginator = Paginator(ObjectFeatures.objects.all().distinct(), 10) page = self.request.GET.get('page') context = super(FeatureCreateView, self).get_context_data(**kwargs) context['create'] = True try: context['object_list'] = paginator.page(page) except PageNotAnInteger: context['object_list'] = paginator.page(1)