Ejemplo n.º 1
0
def resource(request):
    """
    View to enter resource details into the crisis communicator. This help the response personal \
    to find out the location or direct the refugees as per the updates. 

    """

    if request.method == 'POST':
        resource_form = ResourceForm(request.POST)
        comment_form = CommentForm(request.POST)
        valid_resource_form = resource_form.is_valid()
        valid_comment_form = comment_form.is_valid()

        if valid_resource_form and valid_comment_form:
            if request.POST['quantity'] != '' and request.POST[
                    'req_quantity'] != '':
                quantity = int(request.POST['quantity'])
                req_quantity = int(request.POST['req_quantity'])
            else:
                quantity = 0
                req_quantity = 0

            comment_form_data = comment_form.save(commit=False)
            _comment_id = randint(1, 10000)
            comment_form_data.comment_id = _comment_id
            comment_form_data.user_id = get_object_or_404(
                User, user_id=request.session['user_id'])
            comment_form_data.save()
            resource_form_data = resource_form.save(commit=False)

            supply_obj = get_object_or_404(
                Supply,
                pk=update_supply(quantity, str(request.POST['measurement'])))
            required_supply_obj = get_object_or_404(
                Supply,
                pk=update_supply(req_quantity,
                                 str(request.POST['req_measurement'])))
            resource_form_data.supply = supply_obj
            resource_form_data.supply_requirement = required_supply_obj
            resource_form_data.gid = generate_gid()
            resource_form_data.comment = get_object_or_404(
                Comment, comment_id=_comment_id)
            resource_form_data.save()
            return HttpResponseRedirect('/crisis/')
        else:
            return render_to_response('resource/resource.html', {'comment_form':comment_form,\
                    'resource_form':resource_form}, RequestContext(request))

    else:
        initial = {}
        if request.GET.get('q') is not None:
            lnglat = request.GET.get('q').split(",")
            initial = {
                'latitude': float(lnglat[0]),
                'longitude': float(lnglat[1]),
            }

        return render_to_response('resource/resource.html', {'comment_form':CommentForm(),\
                                    'resource_form':ResourceForm(initial)}, RequestContext(request))
Ejemplo n.º 2
0
    def create_form(self, resource=None, edit_form=False):
        """Return form with fields loaded from DB.

        :param object resource: Optional resource object
        :param bool edit_form: Set if edit form
        """
        form = ResourceForm(obj=resource)

        session = self.session()

        # query resource types
        query = session.query(self.ResourceType) \
            .order_by(self.ResourceType.list_order, self.ResourceType.name)
        resource_types = query.all()

        # query resources
        query = session.query(self.Resource) \
            .join(self.Resource.resource_types) \
            .order_by(self.ResourceType.list_order, self.Resource.type,
                      self.Resource.name)
        # eager load relations
        query = query.options(joinedload(self.Resource.resource_type))
        resources = query.all()

        session.close()

        # set choices for type select field
        form.type.choices = [(t.name, t.description) for t in resource_types]

        resource_type = request.args.get('type')
        if resource_type is not None:
            form.type.data = resource_type

        # set choices for parent select field
        form.parent_id.choices = [(0, "")] + [(r.id, "%s: %s" %
                                               (r.type, r.name))
                                              for r in resources]

        # set choices for parent select field, grouped by resource type
        current_type = None
        group = {}
        form.parent_choices = []
        for r in resources:
            if r.type != current_type:
                # add new group
                current_type = r.type
                group = {
                    'resource_type': r.type,
                    'group_label': r.resource_type.description,
                    'options': []
                }

                form.parent_choices.append(group)

            # add resource to group
            group['options'].append((r.id, r.name))

        return form
Ejemplo n.º 3
0
def resource(request):

    """
    View to enter resource details into the crisis communicator. This help the response personal \
    to find out the location or direct the refugees as per the updates. 

    """

    if request.method == 'POST':
        resource_form = ResourceForm(request.POST)
        comment_form = CommentForm(request.POST)
        valid_resource_form = resource_form.is_valid()
        valid_comment_form = comment_form.is_valid()

        if valid_resource_form and valid_comment_form:
            if request.POST['quantity'] != '' and request.POST['req_quantity'] != '':
                quantity = int(request.POST['quantity'])
                req_quantity = int(request.POST['req_quantity'])
            else:
                quantity = 0
                req_quantity = 0
            
            comment_form_data = comment_form.save(commit=False)
            _comment_id = randint(1,10000)
            comment_form_data.comment_id = _comment_id
            comment_form_data.user_id = get_object_or_404(User, user_id=request.session['user_id'])
            comment_form_data.save()
            resource_form_data = resource_form.save(commit=False)
            
            supply_obj = get_object_or_404(Supply, pk=update_supply(quantity, str(request.POST['measurement'])))
            required_supply_obj = get_object_or_404(Supply, pk=update_supply(req_quantity, str(request.POST['req_measurement'])))
            resource_form_data.supply = supply_obj
            resource_form_data.supply_requirement = required_supply_obj
            resource_form_data.gid = generate_gid()
            resource_form_data.comment = get_object_or_404(Comment, comment_id=_comment_id)
            resource_form_data.save()
            return HttpResponseRedirect('/crisis/')
        else:
            return render_to_response('resource/resource.html', {'comment_form':comment_form,\
                    'resource_form':resource_form}, RequestContext(request))

    else:
        initial = {}
        if request.GET.get('q') is not None:
            lnglat = request.GET.get('q').split(",")
            initial = {
                'latitude':float(lnglat[0]),
                'longitude':float(lnglat[1]),
            }

        return render_to_response('resource/resource.html', {'comment_form':CommentForm(),\
                                    'resource_form':ResourceForm(initial)}, RequestContext(request))
Ejemplo n.º 4
0
def create_resource(request):

    if request.method == "POST":
        form = ResourceForm(request.POST, request.FILES)

        if form.is_valid():
            form.save()
            return redirect('home')

    else:
        form = ResourceForm()

    return render(request, 'create_resource.html', {"form": form})
Ejemplo n.º 5
0
def upload_res(request):
    # print request.POST.title()
    # print request.FILES

    print request.FILES
    print request.POST
    form = ResourceForm(request.POST, request.FILES)
    form.set_request(request)
    if form.is_valid():
        instance = form.save()
        return HttpResponse(instance)
    else:
        print 'not valid'
        print form.errors
        return HttpResponseBadRequest(form.errors,
                                      content_type='application/json')