Exemple #1
0
class BeneficiaryDelete(DeleteView):
    """
    Beneficiary Delete
    """
    model = Beneficiary
    success_url = reverse_lazy('beneficiary_list')

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        return super(BeneficiaryDelete, self).dispatch(request, *args,
                                                       **kwargs)

    def form_invalid(self, form):

        messages.error(self.request, 'Invalid Form', fail_silently=False)

        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):

        form.save()

        messages.success(self.request, 'Success, Beneficiary Deleted!')
        return self.render_to_response(self.get_context_data(form=form))

    form_class = BeneficiaryForm
Exemple #2
0
class TrainingUpdate(UpdateView):
    """
    Training Form
    """
    model = TrainingAttendance
    guidance = None

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="Training")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(TrainingUpdate, self).dispatch(request, *args, **kwargs)

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(TrainingUpdate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    def form_invalid(self, form):
        messages.error(self.request, 'Invalid Form', fail_silently=False)
        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        messages.success(self.request, 'Success, Training Updated!')

        return self.render_to_response(self.get_context_data(form=form))

    form_class = TrainingAttendanceForm
Exemple #3
0
class DashboardThemeCreate(CreateView):
    model = DashboardTheme
    template_name = 'configurabledashboard/themes/admin/form.html'
    guidance = None

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(DashboardThemeCreate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="DashboardTheme")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(DashboardThemeCreate, self).dispatch(request, *args,
                                                          **kwargs)

    def get_context_data(self, **kwargs):
        context = super(DashboardThemeCreate, self).get_context_data(**kwargs)

        return context

    def form_invalid(self, form):
        messages.error(self.request, 'Invalid Form', fail_silently=False)
        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        messages.success(self.request, 'Success, Theme Created!')
        return self.render_to_response(self.get_context_data(form=form))

    form_class = DashboardThemeCreateForm
Exemple #4
0
class CustomDashboardCreate(CreateView):
    #   :param request:
    #   :param id:
    #   """
    model = CustomDashboard
    template_name = 'configurabledashboard/dashboard/form.html'

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="CustomDashboard")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(CustomDashboardCreate, self).dispatch(request, *args, **kwargs)

     # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(CustomDashboardCreate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    def get_initial(self):
        initial = {}
        return initial

    def get_context_data(self, **kwargs):
        context = super(CustomDashboardCreate, self).get_context_data(**kwargs)
        pk = self.kwargs['pk']
        context.update({'pk': pk})
        return context

    def form_invalid(self, form):

        messages.error(self.request, 'Invalid Form', fail_silently=False)

        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        if form.is_valid():
            data = form.save(commit=False)
            form_theme = data.theme
            getSelectedTheme = DashboardTheme.objects.all().filter(id=form_theme.id)
            parsedLayout = json.loads(
                getSelectedTheme[0].layout_dictionary, object_pairs_hook=OrderedDict)
            new_map = {}
            for key in parsedLayout:
                new_map[key] = "NONE"
            data.component_map = json.dumps(new_map)
            data.save()

        # save formset from context
        context = self.get_context_data()

        messages.success(self.request, 'Success, Dashboard Created!')
        redirect_url = '/configurabledashboard/' + str(self.kwargs['pk'])
        return HttpResponseRedirect(redirect_url)

    form_class = CustomDashboardCreateForm
Exemple #5
0
class DashboardComponentCreate(CreateView):
    model = DashboardComponent
    template_name = 'configurabledashboard/components/admin/form.html'
    guidance = None

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(DashboardComponentCreate, self).get_form_kwargs()
        kwargs['request'] = self.request
        # id = self.kwargs['id']
        return kwargs

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="DashboardComponent")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(DashboardComponentCreate, self).dispatch(request, *args,
                                                              **kwargs)

    def get_initial(self):
        initial = {
            'get_custom_dashboard': CustomDashboard.objects.get(
                id=self.kwargs['id']),
            'get_component_data_sources': ComponentDataSource.objects.all(),
        }
        return initial

    def get_context_data(self, **kwargs):
        context = super(DashboardComponentCreate,
                        self).get_context_data(**kwargs)
        try:
            get_custom_dashboard = CustomDashboard.objects.get(
                id=self.kwargs['id'])
        except CustomDashboard.DoesNotExist:
            get_custom_dashboard = None
        context.update({'get_custom_dashboard': get_custom_dashboard})

        return context

    def form_invalid(self, form):
        messages.error(self.request, 'Invalid Form', fail_silently=False)
        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        # context = self.get_context_data()
        messages.success(self.request, 'Success, Component Created!')
        latest_component = DashboardComponent.objects.latest('id')
        get_custom_dashboard = CustomDashboard.objects.get(id=self.kwargs['id'])
        get_custom_dashboard.components.add(latest_component)
        return self.render_to_response(self.get_context_data(form=form))

    form_class = DashboardComponentCreateForm
Exemple #6
0
class DistributionCreate(CreateView):
    """
    Distribution Form
    """
    model = Distribution
    guidance = None
    success_url = '/formlibrary/distribution_list/0/0/'

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="Distribution")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(DistributionCreate,
                     self).dispatch(request, *args, **kwargs)

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(DistributionCreate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    def get_initial(self):
        initial = {'program': self.kwargs['id']}

        return initial

    def form_invalid(self, form):

        messages.error(self.request, 'Invalid Form', fail_silently=False)

        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        messages.success(self.request, 'Success, Distribution Created!')
        # latest = Distribution.objects.latest('id')
        redirect_url = '/formlibrary/distribution_list/0/0/'
        return HttpResponseRedirect(redirect_url)

    def get_context_data(self, **kwargs):
        context = super(DistributionCreate, self).get_context_data(**kwargs)
        context['form_title'] = 'Distribution Create Form'
        return context

    form_class = DistributionForm
Exemple #7
0
class TrainingCreate(CreateView):
    """
    Training Form
    """
    model = TrainingAttendance
    guidance = None

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="Training")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(TrainingCreate, self).dispatch(request, *args, **kwargs)

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(TrainingCreate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    def get_context_data(self, **kwargs):
        context = super(TrainingCreate, self).get_context_data(**kwargs)
        context['form_title'] = 'Training Attendance Create Form'
        return context

    def get_initial(self):
        initial = {
            'agreement': self.kwargs['id'],
        }

        return initial

    def form_invalid(self, form):

        messages.error(self.request, 'Invalid Form', fail_silently=False)

        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        messages.success(self.request, 'Success, Training Created!')
        redirect_url = '/formlibrary/training_list/0/0/'
        return HttpResponseRedirect(redirect_url)

    form_class = TrainingAttendanceForm
Exemple #8
0
class IndividualCreate(CreateView):
    """
    Individual Form
    """
    model = Individual
    guidance = None

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="Individual")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(IndividualCreate, self).dispatch(request, *args, **kwargs)

    def get_initial(self):
        organization = self.request.user.activity_user.organization
        initial = {
            # 'training': self.kwargs['id'],
            "program":
            Program.objects.filter(organization=organization).first()
        }

        return initial

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(IndividualCreate, self).get_form_kwargs()
        kwargs['organization'] = self.request.user.activity_user.organization
        kwargs['request'] = self.request
        return kwargs

    def form_invalid(self, form):

        messages.error(self.request, 'Invalid Form', fail_silently=False)

        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        return HttpResponse({'success': True})

    form_class = IndividualForm
Exemple #9
0
class BeneficiaryCreate(CreateView):
    """
    Beneficiary Form
    """
    model = Beneficiary
    guidance = None

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="Beneficiary")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(BeneficiaryCreate, self).dispatch(request, *args,
                                                       **kwargs)

    def get_initial(self):
        initial = {
            'training': self.kwargs['id'],
        }

        return initial

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(BeneficiaryCreate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    def form_invalid(self, form):

        messages.error(self.request, 'Invalid Form', fail_silently=False)

        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        messages.success(self.request, 'Success, Beneficiary Created!')
        latest = Beneficiary.objects.latest('id')
        redirect_url = '/formlibrary/beneficiary_update/' + str(latest.id)
        return HttpResponseRedirect(redirect_url)

    form_class = BeneficiaryForm
Exemple #10
0
class DistributionUpdate(UpdateView):
    """
    Distribution Form
    """
    model = Distribution
    success_url = '/formlibrary/distribution_list/0/0/'
    guidance = None

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="Distribution")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(DistributionUpdate,
                     self).dispatch(request, *args, **kwargs)

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(DistributionUpdate, self).get_form_kwargs()
        kwargs['organization'] = self.request.user.activity_user.organization
        kwargs['request'] = self.request
        return kwargs

    def form_invalid(self, form):
        messages.error(self.request, 'Invalid Form', fail_silently=False)
        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        messages.success(self.request, 'Success, Distribution Updated!')
        return redirect(self.success_url)

    def get_context_data(self, **kwargs):
        context = super(DistributionUpdate, self).get_context_data(**kwargs)
        context['form_title'] = 'Distribution Update Form'
        distribution = Distribution.objects.get(pk=int(self.kwargs['pk']))
        context['distribution_name'] = distribution.distribution_name
        return context

    form_class = DistributionForm
Exemple #11
0
class BeneficiaryUpdate(UpdateView):
    """
    Training Form
    """
    model = Beneficiary
    guidance = None

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="Beneficiary")
        except FormGuidance.DoesNotExist:
            self.guidance = None
        return super(BeneficiaryUpdate, self).dispatch(request, *args,
                                                       **kwargs)

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(BeneficiaryUpdate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    def get_context_data(self, **kwargs):
        context = super(BeneficiaryUpdate, self).get_context_data(**kwargs)
        beneficiary = Beneficiary.objects.get(pk=int(self.kwargs['pk']))
        context['beneficiary_name'] = beneficiary.beneficiary_name
        context['form_title'] = 'Beneficiary Update Form'
        return context

    def form_invalid(self, form):
        messages.error(self.request, 'Invalid Form', fail_silently=False)
        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        form.save()
        messages.success(self.request, 'Success, Beneficiary Updated!')

        return redirect('/formlibrary/beneficiary_list/0/0/0/')

    form_class = BeneficiaryForm
Exemple #12
0
class CustomDashboardUpdate(UpdateView):
    model = CustomDashboard
    form_class = CustomDashboardForm
    guidance = None

    @method_decorator(group_excluded('ViewOnly', url='workflow/permission'))
    def dispatch(self, request, *args, **kwargs):
        try:
            self.guidance = FormGuidance.objects.get(form="CustomDashboard")
        except FormGuidance.DoesNotExist:
            self.guidance = None

        return super(CustomDashboardUpdate, self).dispatch(request, *args,
                                                           **kwargs)

    def get_initial(self):
        get_custom_dashboard = CustomDashboard.objects.get(id=self.kwargs['pk'])
        get_dashboard_components = DashboardComponent.objects.all().filter(
            componentset=get_custom_dashboard)
        get_all_component_data_sources = ComponentDataSource.objects.all()
        initial = {
            'get_custom_dashboard': get_custom_dashboard,
            'get_dashboard_components': get_dashboard_components,
            'get_all_component_data_sources': get_all_component_data_sources,
        }

        return initial

    def get_form(self, form_class):
        check_form_type = self.request.get_full_path()
        if check_form_type.startswith('/configurabledashboard/edit'):
            form = CustomDashboardModalForm
        else:
            form = CustomDashboardForm

        return form(**self.get_form_kwargs())

    def get_context_data(self, **kwargs):
        context = super(CustomDashboardUpdate, self).get_context_data(**kwargs)
        pk = self.kwargs['pk']
        context.update({'pk': pk})

        check_path = self.request.get_full_path()
        if check_path.startswith('/confirgureabledashboard/map'):
            location = self.kwargs['location']
            component_type = self.kwargs['type']
        # TODO: If applicable, work through flow for remapping
        # else if check_form_type.startswith('/confirgureabledashboard/remap'):
        #     location = self.kwargs['location']
        #     component_type = self.kwargs['type']
        else:
            location = None
            component_type = None
        context.update({'location': location})
        context.update({'component_type': component_type})

        try:
            get_custom_dashboard = CustomDashboard.objects.get(
                id=self.kwargs['pk'])
        except CustomDashboard.DoesNotExist:
            get_custom_dashboard = None
        context.update({'get_custom_dashboard': get_custom_dashboard})

        try:
            selected_theme = get_custom_dashboard.theme
            get_dashboard_theme = DashboardTheme.objects.all().filter(
                id=selected_theme.id)
        except DashboardTheme.DoesNotExist:
            get_dashboard_theme = None
        context.update({'get_dashboard_theme': get_dashboard_theme})

        # This theme layout helps to map the components to their position
        # on the page
        # Dashboard layout should be pairs of the # position in
        # the template (1,2,3...) and the component type that needs to be
        # slotted into that position

        if get_dashboard_theme:
            layout = get_dashboard_theme[0].layout_dictionary
            get_dashboard_layout_list = json.loads(
                layout, object_pairs_hook=OrderedDict)
        else:
            get_dashboard_layout_list = None
        context.update({'get_dashboard_layout_list': get_dashboard_layout_list})

        try:
            get_dashboard_components = DashboardComponent.objects.all().filter(
                componentset=get_custom_dashboard)
        except DashboardComponent.DoesNotExist:
            get_dashboard_components = None
        context.update({'get_dashboard_components': get_dashboard_components})

        try:
            get_component_order = json.loads(
                get_custom_dashboard.component_map,
                object_pairs_hook=OrderedDict)
        except Exception as e:
            get_component_order = None
        context.update({'get_component_order': get_component_order})

        try:
            get_all_component_maps = []
            for component in get_dashboard_components:
                if component.data_map:
                    get_all_component_maps[component] = json.loads(
                        component.data_map)
        except not get_dashboard_components:
            get_all_component_maps = None
        context.update({'get_all_component_maps': get_all_component_maps})

        try:
            get_all_component_data_sources = ComponentDataSource.objects.all()
        except ComponentDataSource.DoesNotExist:
            get_all_component_data_sources = None
        context.update(
            {'get_all_component_data_sources': get_all_component_data_sources})

        # try:
        #     getAllDataFilters = {}
        #     for data_source in get_all_component_data_sources:
        #         data_source_filters = import_data_filter_options(
        #           data_source.data_source, data_source.data_filter_key,
        #           data_source.authorization_token)
        #         getAllDataFilters[data_source.id] = data_source_filters
        # except not get_all_component_data_sources:
        #     getAllDataFilters = None
        # context.update({'getAllDataFilters': getAllDataFilters})

        mapped_location = self.request.GET.get('location')
        component_type = self.request.GET.get('type')
        if mapped_location and component_type:
            context.update({'mapped_location': mapped_location})
            context.update({'component_type': component_type})

        return context

    # add the request to the kwargs
    def get_form_kwargs(self):
        kwargs = super(CustomDashboardUpdate, self).get_form_kwargs()
        kwargs['request'] = self.request
        return kwargs

    def form_invalid(self, form):
        messages.error(self.request, self, fail_silently=False)
        return self.render_to_response(self.get_context_data(form=form))

    def form_valid(self, form):
        # check_form_type = self.request.get_full_path()
        # TODO: Once refactoring is done, revisit
        #  whether checking form type still needed
        # if check_form_type.startswith('/confirgureabledashboard/map'):
        #     get_custom_dashboard.component_map =
        #       form.cleaned_data['component_map']
        #     get_custom_dashboard.save()
        # for position in get_custom_dashboard.component_map:
        #     mapped_position = form.component_map.0
        #     if position.0 == mapped_position:
        #         position.1 == form.component_map.1
        #         mapped = true
        # if mapped != true:
        #     get_custom_dashboard.component_map.append(form.component_map)
        # else:
        form.save()
        messages.success(
            self.request, 'Success, CustomDashboard Output Updated!')

        return self.render_to_response(self.get_context_data(form=form))