args=[group.pk]))
            ]
        return []

    def get_page_title(self):
        group = self.get_group()
        page_title = 'Manage Groups/Employers for {}'.format(group)
        return page_title

    def get_queryset(self):
        group = self.get_group()
        return group.companies.all()


access_check = user_passes_test(
    lambda u: check_user_type(u, ['Admin', 'Professional']))


main = access_check(CompanyTableView.as_view())


@login_required
@user_passes_test(lambda u: check_user_type(u, ['Admin', 'Professional']))
def add(request, group_id=None):
    if group_id:
        if not request.user.is_admin():
            return HttpResponseNotFound()
        group = GenesisGroup.objects.get(pk=group_id)
        page_title = 'Add Group/Employer for %s' % group
    else:
        if not request.user.is_professional():
Exemple #2
0
        kwargs['requester'] = self.request.user
        kwargs['patient'] = self._get_patient()
        return kwargs

    def _get_breadcrumbs(self) -> List[Breadcrumb]:
        patient = self._get_patient()
        return [
            Breadcrumb(
                f'Patient: {patient.get_reversed_name()}',
                reverse('accounts:manage-patients-professional-detail',
                        args=[patient.pk])),
            Breadcrumb('Notes',
                       reverse('notes:patient-notes', args=[patient.pk]))
        ]

    def _get_page_title(self) -> str:
        patient = self._get_patient()
        return f"Add note for {patient.get_reversed_name()}"

    def _get_patient(self) -> User:
        if not hasattr(self, '_patient'):
            self._patient = User.objects.filter(
                patient_profile__isnull=False).get(
                    pk=self.kwargs['patient_id'])
        return self._patient


add_patient_note = user_passes_test(
    lambda u: check_user_type(u, ['Professional']))(
        AddPatientNoteView.as_view())
Exemple #3
0
    def get_patient(self):
        if self._patient is None:
            user = self.get_user()
            if user.is_admin():
                self._patient = PatientProfile.myghr_patients.get_users().get(
                    pk=self.kwargs['patient_id'])
            else:
                group = self.get_group()
                self._patient = group.get_patients().get(
                    pk=self.kwargs['patient_id'])
        return self._patient


test = user_passes_test(
    lambda u: check_user_type(u, ['Admin', 'Professional']))
patient_detail = test(GDriveMultipleTableView.as_view())


class BaseIndexDeviceTable(GenesisSingleTableBase):
    def create_columns(self):
        return [
            AttributeTableColumn('MEID', 'meid', cell_class='main'),
            AttributeTableColumn('Serial #', 'device_id'),
            AttributeTableColumn('Group',
                                 'group',
                                 hide_for_user_types=['professional']),
            # TODO: this column still being used?
            AttributeTableColumn('Status', 'network_status'),
            AttributeTableColumn('Patient',
                                 'patient.get_reversed_name',
Exemple #4
0
from django.contrib.auth.decorators import user_passes_test
from django.urls import reverse

from genesishealth.apps.gdrives.breadcrumbs import get_device_breadcrumbs
from genesishealth.apps.gdrives.models import GDrive
from genesishealth.apps.utils.class_views import (GenesisAboveTableButton,
                                                  GenesisDetailView,
                                                  GenesisBaseDetailPane)
from genesishealth.apps.utils.request import check_user_type

test = user_passes_test(lambda u: check_user_type(u, ['Admin']))


class DeviceSnapshotPane(GenesisBaseDetailPane):
    template_name = 'gdrives/detail_panes/snapshot.html'
    pane_title = 'Details'


class PatientInfoPane(GenesisBaseDetailPane):
    template_name = 'gdrives/detail_panes/patient.html'
    pane_title = 'Patient Information'


class ProcessPane(GenesisBaseDetailPane):
    template_name = 'gdrives/detail_panes/process.html'
    pane_title = 'GHT Processes'


class ComplaintPane(GenesisBaseDetailPane):
    template_name = 'gdrives/detail_panes/complaint.html'
    pane_title = 'Complaint'
Exemple #5
0
                GenesisDropdownOption('Enable',
                                      reverse('alerts:batch-enable')),
                GenesisDropdownOption('Disable',
                                      reverse('alerts:batch-disable')),
                GenesisDropdownOption('Delete', reverse('alerts:batch-delete'))
            ])
        ]

    def get_page_title(self):
        return 'Alerts'

    def get_queryset(self):
        return self.request.user.created_patientalerts.all()


test = user_passes_test(lambda u: check_user_type(u, ['Patient']))
main = test(AlertTableView.as_view())


@user_passes_test(lambda u: check_user_type(u, ['Patient']))
def new(request):
    kwargs = {
        'form_class': PatientAlertForm,
        'page_title': 'New Alert',
        'system_message': 'The alert has been created.',
        'form_kwargs': {
            'requester': request.user
        }
    }
    return generic_form(request, **kwargs)