예제 #1
0
 def get_breadcrumbs(self):
     group = self.get_group()
     if group:
         return [
             Breadcrumb('Business Partners',
                        reverse('accounts:manage-groups')),
             Breadcrumb(
                 'Business Partner: {0}'.format(group.name),
                 reverse('accounts:manage-groups-detail', args=[group.pk]))
         ]
     return []
예제 #2
0
 def _get_breadcrumbs(self) -> List[Breadcrumb]:
     group = self.get_group()
     return [
         Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
         Breadcrumb(
             'Business Partner: {0}'.format(group.name),
             reverse('accounts:manage-groups-detail', args=[group.pk])),
         Breadcrumb(
             'Reports',
             reverse('accounts:manage-groups-reports', args=[group.pk]))
     ]
예제 #3
0
 def get_breadcrumbs(self):
     group = self.get_professional().professional_profile.parent_group
     return [
         Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
         Breadcrumb(
             'Business Partner: {0}'.format(group.name),
             reverse('accounts:manage-groups-detail', args=[group.pk])),
         Breadcrumb(
             'Professionals',
             reverse('accounts:manage-groups-professionals',
                     args=[group.pk]))
     ]
예제 #4
0
def get_device_breadcrumbs(device, requester, include_detail=True):
    patient = device.get_patient()
    if patient:
        breadcrumbs = get_patient_breadcrumbs(patient, requester)
        breadcrumbs.append(
            Breadcrumb('Devices',
                       reverse('gdrives:patient-details', args=[patient.pk])))
    else:
        breadcrumbs = []
    if include_detail:
        breadcrumbs.append(
            Breadcrumb('Device: {0}'.format(device.meid),
                       reverse('gdrives:detail', args=[device.pk])))
    return breadcrumbs
예제 #5
0
 def _get_breadcrumbs(self):
     group = self.get_company().group
     return [
         Breadcrumb('Business Partners',
                    reverse('accounts:manage-groups')),
         Breadcrumb(
             'Business Partner: {0}'.format(group.name),
             reverse('accounts:manage-groups-detail',
                     args=[group.pk])),
         Breadcrumb(
             'Companies',
             reverse('accounts:manage-groups-companies',
                     args=[group.pk]))
     ]
예제 #6
0
 def _get_breadcrumbs(self):
     user = self.get_patient()
     breadcrumbs = get_patient_breadcrumbs(user, self.request.user)
     breadcrumbs.append(
         Breadcrumb('Reports',
                    reverse('reports:patient-index', args=[user.pk])))
     return breadcrumbs
예제 #7
0
def reports(request, group_id):
    try:
        group = GenesisGroup.objects.get(pk=group_id)
    except GenesisGroup.DoesNotExist:
        return HttpResponseNotFound()
    ctx = {
        'group':
        group,
        'breadcrumbs': [
            Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
            Breadcrumb(
                'Business Partner: {0}'.format(group.name),
                reverse('accounts:manage-groups-detail', args=[group.pk]))
        ]
    }
    return render(request, 'accounts/group_reports.html', ctx)
예제 #8
0
 def _get_breadcrumbs(self):
     patient = self.get_patient()
     breadcrumbs = get_patient_breadcrumbs(patient, self.request.user)
     breadcrumbs.append(
         Breadcrumb('Orders',
                    reverse('accounts:patient-orders', args=[patient.pk])))
     return breadcrumbs
예제 #9
0
 def get_breadcrumbs(self):
     group = self.get_group()
     if group:
         return get_group_breadcrumbs(group, self.request.user)
     return [
         Breadcrumb('Users', reverse('accounts:manage-users'))
     ]
예제 #10
0
 def _get_breadcrumbs(self):
     device = self.get_device()
     breadcrumbs = get_device_breadcrumbs(device, self.request.user)
     breadcrumbs.append(
         Breadcrumb('Complaints',
                    reverse('gdrives:complaints', args=[device.pk])))
     return breadcrumbs
예제 #11
0
 def _get_breadcrumbs(self):
     device = self.get_device()
     breadcrumbs = get_device_breadcrumbs(device, self.request.user)
     breadcrumbs.append(
         Breadcrumb('Non-Conformities',
                    reverse('gdrives:non-conformities', args=[device.pk])))
     return breadcrumbs
예제 #12
0
def edit(request, user_id, group_id=None):
    group = None
    user = None
    try:
        if group_id:
            assert request.user.is_admin()
            group = GenesisGroup.objects.get(pk=group_id)
            user = group.get_professionals().get(pk=user_id)
        else:
            if request.user.is_admin():
                user = ProfessionalProfile.objects.get_users().get(pk=user_id)
                group = user.professional_profile.parent_group
            elif request.user.is_professional():
                group = request.user.professional_profile.parent_group
                user = group.get_professionals().get(pk=user_id)
    except (User.DoesNotExist, GenesisGroup.DoesNotExist, AssertionError) as e:
        return debug_response(e)

    if request.user.is_admin():
        breadcrumbs = [
            Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
            Breadcrumb(
                'Business Partner: {0}'.format(group.name),
                reverse('accounts:manage-groups-detail', args=[group.pk])),
            Breadcrumb(
                'Professionals',
                reverse('accounts:manage-groups-professionals',
                        args=[group.pk])),
            Breadcrumb(
                'Professional: {0}'.format(user.get_reversed_name()),
                reverse('accounts:manage-professionals-detail',
                        args=[user.pk]))
        ]
    else:
        breadcrumbs = []

    return generic_form(request,
                        breadcrumbs=breadcrumbs,
                        form_class=ProfessionalForm,
                        form_kwargs={
                            'requester': request.user,
                            'initial_group': group,
                            'instance': user
                        },
                        page_title='Edit Professional',
                        system_message='The professional has been updated.')
예제 #13
0
def delete(request, device_id):
    try:
        if request.user.is_professional():
            group = request.user.professional_profile.parent_group
            device = group.gdrives.get(pk=device_id)
        else:
            device = GDrive.objects.get(pk=device_id)
            group = device.group
    except GDrive.DoesNotExist as e:
        return debug_response(e)

    if request.user.is_admin():
        if group:
            breadcrumbs = [
                Breadcrumb('Business Partners',
                           reverse('accounts:manage-groups')),
                Breadcrumb(
                    'Business Partner: {0}'.format(group.name),
                    reverse('accounts:manage-groups-detail', args=[group.pk])),
                Breadcrumb(
                    'Devices'.format(group.name),
                    reverse('accounts:manage-groups-devices',
                            args=[group.pk])),
            ]
        else:
            breadcrumbs = [Breadcrumb('Devices', reverse('gdrives:index'))]
    else:
        breadcrumbs = []

    if device.readings.count() > 0:
        extra_delete_warning = (
            'Note: This device has readings associated with it.  If you '
            'delete it, the readings will have no device associated '
            'with them.')
    else:
        extra_delete_warning = None

    return generic_delete_form(request,
                               device,
                               breadcrumbs=breadcrumbs,
                               go_back_until=[
                                   'gdrives:index',
                                   'accounts:manage-groups-devices',
                                   'gdrives:patient-details'
                               ],
                               extra_delete_warning=extra_delete_warning)
예제 #14
0
 def get_breadcrumbs(self):
     patient = self.get_patient()
     group = self.get_group()
     if self.request.user.is_admin():
         if group is None:
             return [
                 Breadcrumb('Users', reverse('accounts:manage-users')),
                 Breadcrumb(
                     'Patient: {0}'.format(patient.get_reversed_name()),
                     reverse('accounts:manage-patients-detail',
                             args=[patient.pk]))
             ]
         breadcrumbs = [
             Breadcrumb('Business Partners',
                        reverse('accounts:manage-groups')),
             Breadcrumb(
                 'Business Partner: {0}'.format(group.name),
                 reverse('accounts:manage-groups-detail', args=[group.pk]))
         ]
         if patient is not None:
             breadcrumbs.extend([
                 Breadcrumb(
                     'Patients',
                     reverse('accounts:manage-groups-patients',
                             args=[group.pk])),
                 Breadcrumb(
                     'Patient: {0}'.format(patient.get_reversed_name()),
                     reverse('accounts:manage-patients-detail',
                             args=[patient.pk]))
             ])
     else:
         breadcrumbs = [
             Breadcrumb('Patients', reverse('accounts:manage-patients'))
         ]
     return breadcrumbs
예제 #15
0
 def _get_breadcrumbs(self):
     patient = self.get_order().epc_member.user
     breadcrumbs = get_patient_breadcrumbs(patient,
                                           self.request.user,
                                           include_detail=True)
     breadcrumbs.append(
         Breadcrumb('EPC Orders',
                    reverse('epc:patient-orders', args=[patient.pk])))
     return breadcrumbs
예제 #16
0
def import_group(request):
    breadcrumbs = [
        Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
    ]
    return generic_form(
        request,
        form_class=ImportGroupsForm,
        page_title='Import Business Partners',
        breadcrumbs=breadcrumbs,
        system_message='The business partners have been imported.')
예제 #17
0
 def _get_breadcrumbs(self):
     patient = self.get_patient()
     requester = self.request.user
     breadcrumbs = get_patient_breadcrumbs(patient, requester)
     breadcrumbs.append(
         Breadcrumb('Communications',
                    reverse('accounts:patient-communications',
                            args=[patient.pk]))
     )
     return breadcrumbs
예제 #18
0
def add(request):
    breadcrumbs = [
        Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
    ]
    return generic_form(
        request,
        form_class=GroupForm,
        page_title='Add Business Partner',
        breadcrumbs=breadcrumbs,
        system_message='The business partner has been created.')
예제 #19
0
def edit(request, payor_id, group_id=None):
    try:
        if group_id:
            assert request.user.is_admin()
            group = GenesisGroup.objects.get(pk=group_id)
        else:
            if request.user.is_admin():
                group = None
            else:
                group = request.user.professional_profile.parent_group
        if group:
            payor = group.payors.get(pk=payor_id)
        else:
            payor = Payor.objects.get(pk=payor_id)
        if not group:
            group = payor.group
    except (GenesisGroup.DoesNotExist, Payor.DoesNotExist,
            AssertionError) as e:
        return debug_response(e)

    if request.user.is_admin():
        breadcrumbs = [
            Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
            Breadcrumb(
                'Business Partner: {0}'.format(group.name),
                reverse('accounts:manage-groups-detail', args=[group.pk])),
            Breadcrumb(
                'Payors',
                reverse('accounts:manage-groups-payors', args=[group.pk])),
            Breadcrumb('Payor: {0}'.format(payor.name), '')
        ]
    else:
        breadcrumbs = []

    return generic_form(request,
                        form_class=PayorForm,
                        page_title='Edit %s' % payor,
                        system_message="The payor/TPA has been updated.",
                        breadcrumbs=breadcrumbs,
                        form_kwargs={
                            'instance': payor,
                            'initial_group': group
                        })
예제 #20
0
def create(request, group_id):
    try:
        group = GenesisGroup.objects.get(pk=group_id)
    except GenesisGroup.DoesNotExist:
        return HttpResponse(status=500)

    breadcrumbs = [
        Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
        Breadcrumb('Business Partner: {0}'.format(group.name),
                   reverse('accounts:manage-groups-detail', args=[group.pk])),
        Breadcrumb('Demo Patients'.format(group.name),
                   reverse('accounts:manage-groups-demo', args=[group.pk]))
    ]

    return generic_form(request,
                        form_class=DemoPatientForm,
                        page_title='Create Demo Patient for %s' % group,
                        system_message="The patient has been created.",
                        breadcrumbs=breadcrumbs,
                        form_kwargs={'initial_group': group})
예제 #21
0
def target_range_report(request, group_id):
    group = GenesisGroup.objects.get(pk=group_id)
    breadcrumbs = [
        Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
        Breadcrumb('Business Partner: {0}'.format(group.name),
                   reverse('accounts:manage-groups-detail', args=[group.pk])),
        Breadcrumb('Reports',
                   reverse('accounts:manage-groups-reports', args=[group.pk]))
    ]
    return generic_form(
        request,
        form_class=TargetRangeReportForm,
        form_kwargs={
            'group': group,
            'user': request.user
        },
        page_title='Generate Target Range Report for {0}'.format(group.name),
        system_message='Your report has been generated.',
        breadcrumbs=breadcrumbs,
        send_download_url=True)
예제 #22
0
def batch_unassign_from_rx_partner(request):
    breadcrumbs = [
        Breadcrumb('Partner Devices', reverse('gdrives:partner-devices'))
    ]
    return generic_form(request,
                        form_class=BatchUnassignRxPartnerForm,
                        page_title='Unassign Devices from Rx Partner',
                        breadcrumbs=breadcrumbs,
                        system_message="The devices have been unassigned.",
                        batch=True,
                        only_batch_input=True,
                        batch_queryset=GDrive.objects.all())
예제 #23
0
def edit(request, device_id):
    try:
        if request.user.is_professional():
            group = request.user.professional_profile.parent_group
            device = group.gdrives.get(pk=device_id)
        else:
            device = GDrive.objects.get(pk=device_id)
            group = device.group
    except GDrive.DoesNotExist as e:
        return debug_response(e)

    if request.user.is_admin():
        if group:
            breadcrumbs = [
                Breadcrumb('Business Partners',
                           reverse('accounts:manage-groups')),
                Breadcrumb(
                    'Business Partner: {0}'.format(group.name),
                    reverse('accounts:manage-groups-detail', args=[group.pk])),
                Breadcrumb(
                    'Devices'.format(group.name),
                    reverse('accounts:manage-groups-devices',
                            args=[group.pk])),
            ]
        else:
            breadcrumbs = [Breadcrumb('Devices', reverse('gdrives:index'))]
    else:
        breadcrumbs = []

    return generic_form(request,
                        form_class=GDriveForm,
                        page_title='Edit Device',
                        system_message='The device has been updated.',
                        form_kwargs={
                            'instance': device,
                            'initial_group': group
                        },
                        breadcrumbs=breadcrumbs,
                        delete_view_args=[device.id])
예제 #24
0
def new(request, group_id=None):
    try:
        if group_id:
            assert request.user.is_admin()
            group = GenesisGroup.objects.get(pk=group_id)
        else:
            if request.user.is_professional():
                group = request.user.professional_profile.parent_group
            else:
                group = None
    except (GenesisGroup.DoesNotExist, AssertionError) as e:
        return debug_response(e)

    if request.user.is_admin():
        if group:
            breadcrumbs = [
                Breadcrumb('Business Partners',
                           reverse('accounts:manage-groups')),
                Breadcrumb(
                    'Business Partner: {0}'.format(group.name),
                    reverse('accounts:manage-groups-detail', args=[group.pk])),
                Breadcrumb(
                    'Devices'.format(group.name),
                    reverse('accounts:manage-groups-devices',
                            args=[group.pk])),
            ]
        else:
            breadcrumbs = [
                Breadcrumb('New Devices', reverse('gdrives:new-devices'))
            ]
    else:
        breadcrumbs = []

    return generic_form(request,
                        form_class=GDriveForm,
                        form_kwargs={'initial_group': group},
                        page_title='Add Device',
                        breadcrumbs=breadcrumbs,
                        system_message='The device has been created.')
예제 #25
0
def batch_assign_to_rx_partner(request):
    breadcrumbs = [
        Breadcrumb('Available Devices', reverse('gdrives:available'))
    ]
    statuses = (GDrive.DEVICE_STATUS_AVAILABLE, GDrive.DEVICE_STATUS_ASSIGNED)
    return generic_form(
        request,
        form_class=BatchAssignToRxPartnerForm,
        page_title='Assign Devices to Rx Partner',
        breadcrumbs=breadcrumbs,
        system_message="The devices have been assigned.",
        batch=True,
        batch_queryset=GDrive.objects.filter(status__in=statuses))
예제 #26
0
def add(request, group_id=None):
    try:
        if group_id:
            assert request.user.is_admin()
            group = GenesisGroup.objects.get(pk=group_id)
            thanks_view_name = reverse('accounts:manage-groups-professionals',
                                       args=[group.id])
        else:
            assert request.user.is_professional()
            group = request.user.professional_profile.parent_group
            thanks_view_name = reverse('accounts:manage-professionals')
    except (GenesisGroup.DoesNotExist, AssertionError) as e:
        return debug_response(e)

    if request.user.is_admin():
        breadcrumbs = [
            Breadcrumb('Business Partners', reverse('accounts:manage-groups')),
            Breadcrumb(
                'Business Partner: {0}'.format(group.name),
                reverse('accounts:manage-groups-detail', args=[group.pk])),
            Breadcrumb(
                'Professionals',
                reverse('accounts:manage-groups-professionals',
                        args=[group.pk]))
        ]
    else:
        breadcrumbs = []

    return generic_form(request,
                        form_class=ProfessionalForm,
                        form_kwargs={
                            'requester': request.user,
                            'initial_group': group
                        },
                        page_title='Add Professional',
                        thanks_view_name=thanks_view_name,
                        breadcrumbs=breadcrumbs,
                        system_message='The professional has been added.')
예제 #27
0
 def _get_breadcrumbs(self):
     order = self.get_shipment().order
     if order.is_patient_order():
         patient = order.patient
         breadcrumbs = get_patient_breadcrumbs(patient, self.request.user)
         breadcrumbs.append(
             Breadcrumb(
                 'Orders',
                 reverse('accounts:patient-orders', args=[patient.pk])))
     else:
         rx_partner = order.rx_partner
         breadcrumbs = get_rx_partner_breadcrumbs(rx_partner,
                                                  self.request.user)
     return breadcrumbs
예제 #28
0
def batch_inspect_reworked_devices(request):
    breadcrumbs = [
        Breadcrumb('Reworked Devices', reverse('gdrives:reworked-devices'))
    ]
    return generic_form(
        request,
        form_class=BatchInspectGDriveForm,
        form_kwargs={'requester': request.user},
        page_title='Inspect Devices',
        breadcrumbs=breadcrumbs,
        system_message="The devices have been marked available.",
        batch=True,
        batch_queryset=GDrive.objects.filter(
            status=GDrive.DEVICE_STATUS_REWORKED))
예제 #29
0
def batch_rework_devices(request):
    breadcrumbs = [
        Breadcrumb('Non-Conforming Devices',
                   reverse('gdrives:non-conforming-devices'))
    ]
    return generic_form(request,
                        form_class=BatchReworkGDriveForm,
                        form_kwargs={'requester': request.user},
                        page_title='Rework Devices',
                        breadcrumbs=breadcrumbs,
                        system_message="The devices have been reworked.",
                        batch=True,
                        batch_queryset=GDrive.objects.filter(
                            status=GDrive.DEVICE_STATUS_REPAIRABLE))
예제 #30
0
def import_csv_old(request, group_id=None):
    try:
        if group_id:
            assert request.user.is_admin()
            group = GenesisGroup.objects.get(id=group_id)
        else:
            assert request.user.is_professional()
            group = request.user.professional_profile.parent_group
    except (AssertionError, GenesisGroup.DoesNotExist) as e:
        return debug_response(e)

    if request.user.is_admin():
        breadcrumbs = get_group_breadcrumbs(group, request.user)
        breadcrumbs.append(
            Breadcrumb(
                'Patients'.format(group.name),
                reverse('accounts:manage-groups-patients',
                        args=[group.pk]))
        )
    else:
        breadcrumbs = [
            Breadcrumb(
                'Patients'.format(group.name),
                reverse('accounts:manage-patients'))
        ]

    view_kwargs = {
        "form_class": ImportPatientForm,
        "form_kwargs": {'initial_group': group, 'user': request.user},
        "page_title": "Import Patients",
        "system_message": "The patients have been imported.",
        "go_back_until": ['accounts:manage-groups-patients'],
        "breadcrumbs": breadcrumbs
    }
    if request.user.is_admin():
        view_kwargs['send_download_url'] = True
    return generic_form(request, **view_kwargs)