Beispiel #1
0
def delete_route(request, route_slug):
    if request.is_ajax():
        route = get_object_or_404(Route, name=route_slug)
        applier_peer = route.applier.get_profile().peer
        requester_peer = request.user.get_profile().peer
        if applier_peer == requester_peer or request.user.is_superuser:
            route.status = "PENDING"
            route.expires = datetime.date.today()
            if not request.user.is_superuser:
                route.applier = request.user
            route.response = "Deactivating"
            route.save()
            route.commit_delete()
            requesters_address = request.META['HTTP_X_FORWARDED_FOR']
            fqdn = Site.objects.get_current().domain
            admin_url = "https://%s%s" % (fqdn, "/fod/edit/%s"%route.name)
            mail_body = render_to_string("rule_action.txt",
                                             {"route": route, "address": requesters_address, "action": "removal", "url": admin_url})
            user_mail = "%s" %route.applier.email
            user_mail = user_mail.split(';')
            send_new_mail(settings.EMAIL_SUBJECT_PREFIX + "Rule %s removal request submitted by %s" %(route.name, route.applier.username), 
                              mail_body, settings.SERVER_EMAIL, user_mail,
                             get_peer_techc_mails(route.applier))
            d = { 'clientip' : requesters_address, 'user' : route.applier.username }
            logger.info(mail_body, extra=d)
        html = "<html><body>Done</body></html>"
        return HttpResponse(html)
    else:
        return HttpResponseRedirect(reverse("group-routes"))
Beispiel #2
0
def listOverview(request):
    pie_chart, bar_chart, bar_chart2 = createChartsForOverview()

    browser_lang = getBrowserLanguage(request)
    list_name = '%'
    min_list_difficulty = 1
    max_list_difficulty = 5
    user_first_name = '%'
    user_last_name = '%'
    prog_lang_name = '%'
    order_mode = "ASC"
    subject_name = '%'

    if request.method == "POST" and request.is_ajax():
        list_name = request.POST.get('title', '%')
        min_list_difficulty = int(request.POST.get('min_difficulty', 1))
        max_list_difficulty = int(request.POST.get('max_difficulty', 5))
        prog_lang_name = request.POST.get('prog_lang')
        if prog_lang_name == '':
            prog_lang_name = '%'

        user_name = request.POST.get('user')
        if user_name != "":
            user_name = user_name.split(' ')
            user_first_name = user_name[0]
            if len(user_name) > 1:
                user_last_name = user_name[1]

        subjects = request.POST.get('subjects')
        if subjects != "":
            subject_name = subjects.split(',')

        order_mode = request.POST.get('order_mode')
        if order_mode == "Ascending":
            order_mode = "ASC"
        else:
            order_mode = "DESC"

        all_lists = object_manager.filterOn(list_name, min_list_difficulty, max_list_difficulty, user_first_name,
                                            user_last_name, prog_lang_name, subject_name, order_mode, browser_lang.id)
        html = ""
        info = ""
        for i, obj in enumerate(reversed(all_lists)):
            obj.created_on = obj.created_on.strftime("%Y-%m-%d %H:%M:%S")
            h, i = createListElem(i, obj)
            html += h
            info += i

        return HttpResponse(json.dumps({"planets": html, "info": info}))

    all_lists = reversed(
        object_manager.filterOn(list_name, min_list_difficulty, max_list_difficulty, user_first_name, user_last_name,
                                prog_lang_name, subject_name, order_mode, browser_lang.id))

    return render(request, 'listOverview.html', {"all_lists": all_lists,
                                                 "languages": object_manager.allProgrammingLanguages(),
                                                 'lists_per_prog_lang_graph': pie_chart,
                                                 'most_popular_subjects': bar_chart,
                                                 'users_with_mosts_made_lists':
                                                     bar_chart2})
Beispiel #3
0
def subcategory_for_category(request):
	# print "subcategory_for_category"
	if request.is_ajax() and request.GET and 'category_id' in request.GET:
		print request.GET['category_id']
		objs1 = SubCategory.objects.filter(category_id=request.GET['category_id'])
		return JSONResponse([{'id': o1.id, 'name': smart_unicode(o1.name)}
			for o1 in objs1])
	else:
		return JSONResponse({'error': 'Not Ajax or no GET'})
Beispiel #4
0
def localities_for_city(request):
	if request.is_ajax() and request.GET and 'city_id' in request.GET:
		print "request.GET['city_id']", request.GET['city_id']
		objs = Locality.objects.filter(city_refid=request.GET['city_id'])
		print objs
		return JSONResponse([{'id': o.id, 'name': smart_unicode(o)}
			for o in objs])
	else:
		return JSONResponse({'error': 'Not Ajax or no GET'})
Beispiel #5
0
 def step1(self,request):
     appform1=AppForm1()
     if request.is_ajax():
         
         appform1=AppForm1(request.POST)
         if appform1.is_valid():
             return render_to_response("admin/partials/wizardform1.html",{'appform1':appform1} )
         else: 
             return render_to_response("admin/partials/wizardform1.html",{'appform1':appform1} )
Beispiel #6
0
def map(request):
    if request.is_ajax():
        data = serializers.serialize("json", goo_map.objects.all())
        return HttpResponse(data,mimetype='text/plain')
    else:
        data = goo_map.objects.all()
#        tpl = loader.get_template('googlemap.html')
#        return HttpResponse(tpl.render(Context({'data':data})))
        return render_to_response("googlemap.html",{"data":data})
Beispiel #7
0
    #print (request.user)
    if request.user.has_perm('softGISview.view_data') or page_name == 'js_settings':
        school_id = request.POST.get('value', '')
        return render_to_response(page_name + "." + file_type,
               {"school_id": school_id},        
               context_instance=RequestContext(request))
    else:
        return HttpResponseForbidden()
    #return HttpResponse('You requested: %s' % page_name)

@permission_required('softGISview.view_data', raise_exception=True)
def get_free_time_features(request):

    if not request.is_ajax():
        return HttpResponseBadRequest()

    if request.POST.get('value', '') == '':
        return HttpResponseBadRequest()

    school = Schools.objects.get(id__exact=request.POST.get('value', ''))
    
#    js_school = school.values_list('name')[0][0]
    js_school = school.name
    js_school = js_school.split(",")[0].replace(" ", "_", 1).lower()
    #some unicode problem with school name
    js_school = js_school.replace(u"ä", "\u00e4")
    #Get respondants for school
    users = Person.objects.filter(time__expire_time=None).filter(
                                  json_data__json_string__contains='"school": "%s"' % js_school)
    
    user_ids = users.values_list('user_id', flat=True)
    
    # Get correct features
    properties = Property.objects.filter(expire_time=None).filter(json_string__contains='"valuename": "thingsGood"')
    
    # Filter to get only features from current school
    properties = properties.filter(feature__user_id__in=user_ids)
    
    cs = properties.filter(json_string__contains='"competitive_sports"')
    ma = properties.filter(json_string__contains='"moving_around"')
    rs = properties.filter(json_string__contains='"recreational_sports"')
    
    features = []
    
    for f in cs:
        f_json = f.geojson()
        f_json['properties']['valuename'] = 'competitive'
        features.append(f_json)
    
    for f in ma:
        f_json = f.geojson()
        f_json['properties']['valuename'] = 'moving'
        features.append(f_json)

    for f in rs:
Beispiel #8
0
def brand_for_subcategory(request):
	# print "brand_for_subcategory"
	if request.is_ajax() and request.GET and 'sub_category_id' in request.GET:
		print request.GET['sub_category_id']
		objs1 = Dropdown.objects.filter(subcat__id=request.GET['sub_category_id'])
		for obj in objs1:
			print obj.brand_name
		return JSONResponse([{'id': o1.id, 'name': smart_unicode(o1.brand_name)}
			for o1 in objs1])
	else:
		return JSONResponse({'error': 'Not Ajax or no GET'})
Beispiel #9
0
def localities_for_city(request):
    if request.is_ajax() and request.GET and 'city_id' in request.GET:
        print "request.GET['city_id']", request.GET['city_id']
        objs = Locality.objects.filter(city_refid=request.GET['city_id'])
        print objs
        return JSONResponse([{
            'id': o.id,
            'name': smart_unicode(o)
        } for o in objs])
    else:
        return JSONResponse({'error': 'Not Ajax or no GET'})
Beispiel #10
0
def subcategory_for_category(request):
    # print "subcategory_for_category"
    if request.is_ajax() and request.GET and 'category_id' in request.GET:
        print request.GET['category_id']
        objs1 = SubCategory.objects.filter(
            category_id=request.GET['category_id'])
        return JSONResponse([{
            'id': o1.id,
            'name': smart_unicode(o1.name)
        } for o1 in objs1])
    else:
        return JSONResponse({'error': 'Not Ajax or no GET'})
Beispiel #11
0
def logins(request):
    
        usern = request.POST.get('login')
        passw = request.POST.get('password')
        user = authenticate(username=usern, password=passw)
        if  request.user.is_authenticated():
            if(request.is_ajax()):
                return  HttpResponse(json.dumps({'inside':'true'}), content_type='application/json')
            return redirect('/blog/user')
        if user is not None:
            if user.is_active:
#                 power = get_object_or_404(User, pk=2)
#                 permission = Permission.objects.get(codename='can_publish')
#                 power.user_permissions.add(permission)
                
                login(request, user)
                if(request.is_ajax()):
                    return  HttpResponse(json.dumps({'inside':'true'}), content_type='application/json')
                return redirect('/blog/user')
        else:
            if(request.is_ajax()):
                return  HttpResponse(json.dumps({'inside':'false'}), content_type='application/json')
            return redirect('/blog/logout')
Beispiel #12
0
def brand_for_subcategory(request):
    # print "brand_for_subcategory"
    if request.is_ajax() and request.GET and 'sub_category_id' in request.GET:
        print request.GET['sub_category_id']
        objs1 = Dropdown.objects.filter(
            subcat__id=request.GET['sub_category_id'])
        for obj in objs1:
            print obj.brand_name
        return JSONResponse([{
            'id': o1.id,
            'name': smart_unicode(o1.brand_name)
        } for o1 in objs1])
    else:
        return JSONResponse({'error': 'Not Ajax or no GET'})
Beispiel #13
0
   def step3(self,request):
 
       appform3=AppForm3()
       
       if request.is_ajax():
           form=AppForm(request.POST)
           if form.is_valid():
               
               if  form.save(request) :
                   messages.success(request,'You App is Created !')
                   return render_to_response("admin/partials/wizardform3.html",{'appform3':appform3 })
               else:
                   return render_to_response("admin/partials/wizardform3.html",{'appform3':appform3 })
           return render_to_response("admin/partials/wizardform3.html",{'appform3':appform3})    
Beispiel #14
0
    def step2(self,request):
        
        appform2=AppForm2()
        if request.is_ajax():
            
            appform2=AppForm2(request.POST)
            if appform2.is_valid():
#                 if appform2.save():
                    
                    return render_to_response("admin/partials/wizardform2.html",{'appform2':appform2}) 
            else:    
                    return render_to_response("admin/partials/wizardform2.html",{'appform2':appform2}) 
    
        return render_to_response("admin/partials/wizardform2.html",{'appform2':appform2})
Beispiel #15
0
 def post(self, request, *args, **kwargs):
     """
     Handles POST requests, instantiating a form instance with the passed
     POST variables and then checked for validity.
     """
     self.object = None
     form_class = self.get_form_class()
     form = self.get_form(form_class)
     if form.is_valid():
         return self.form_valid(form)
     else:
         if request.is_ajax():
             return HttpResponseBadRequest()
         else:
             return self.form_invalid(form)
Beispiel #16
0
def autocomplete_product_search(request):
    if request.is_ajax():
        q = request.GET.get('term', '')
        # product_searchs = SearchQuerySet().filter(content__like=q)
        product_searchs = Product.objects.filter(title__contains=q)
        results = []
        for product_search in product_searchs:
            search_json = {}
            search_json['id'] = product_search.id
            search_json['label'] = product_search.title
            search_json['value'] = product_search.title
            results.append(search_json)
        data = json.dumps(results)
    else:
        data = 'fail'
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)
Beispiel #17
0
def autocomplete_product_search(request):
    if request.is_ajax():
        q = request.GET.get('term', '')
        # product_searchs = SearchQuerySet().filter(content__like=q)
        product_searchs = Product.objects.filter(title__contains=q)
        results = []
        for product_search in product_searchs:
            search_json = {}
            search_json['id'] = product_search.id
            search_json['label'] = product_search.title
            search_json['value'] = product_search.title
            results.append(search_json)
        data = json.dumps(results)
    else:
        data = 'fail'
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)
Beispiel #18
0
    def post(self, request, *args, **kwargs):
        """
        Handles POST requests, instantiating a form instance with the passed
        POST variables and then checked for validity.
        """
        logger = logging.getLogger('essarch.storagemaintenance')
        print("hit kom vi")
        self.object = None
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        if form.is_valid():

            # Convert ObjectIdentifierValue to list
            obj_list = self.request.POST.get('ObjectIdentifierValue','')
            if request.is_ajax():
                self.obj_list = []
                try:
                    for o in json.loads(obj_list):
                        self.obj_list.append(o[1])
                except ValueError,detail:
                    logger.warning('Problem to parse json: %s, detail:%s' % (obj_list,detail))    
                #self.obj_list = obj_list.split('\r\n')[:-1]
                #print 'self.obj_list: %s' % self.obj_list
                #return HttpResponseBadRequest()
            else:
                self.obj_list = obj_list.split(' ')
            # Convert TargetMediumID to list and remove "+" ## Convert to checkbox answer.
            target_list = self.request.POST.get('TargetMediumID',None)
            self.target_list = target_list.split(' ')
            for c, target_item in enumerate(self.target_list):
                if target_item.startswith('+'):
                    self.target_list[c] = target_item[1:]

#            # Copy OnlyFlag       
#           self.copy_only_flag = self.request.POST.get('CopyOnlyFlag', None)
#           print 'copy_only_flag: %s %s' % (str(self.copy_only_flag), type(self.copy_only_flag))

            return self.form_valid(form)
Beispiel #19
0
        features.append(f_json)
    
    featurecollection = {
             "type": "FeatureCollection",
             "crs": {"type": "EPSG", "properties": {"code": school.coordinates.srid}},
             "features": features
             }

    return HttpResponse(json.dumps(featurecollection))

@permission_required('softGISview.view_data', raise_exception=True)
def get_time_classes(request):
     
    if not request.is_ajax():
        return HttpResponseBadRequest()

    if request.POST.get('value', '') == '':
        return HttpResponseBadRequest()

    school = Schools.objects.get(id__exact=request.POST.get('value', ''))
    
#    js_school = school.values_list('name')[0][0]
    js_school = school.name
    js_school = js_school.split(",")[0].replace(" ", "_", 1).lower()
    #some unicode problem with school name
    js_school = js_school.replace(u"ä", "\u00e4")
    #Get respondants for school
    users = Person.objects.filter(time__expire_time=None).filter(
                                  json_data__json_string__contains='"school": "%s"' % js_school)
    
    total_users = float(len(users))
    
    if total_users == 0:
        return HttpResponse(json.dumps([[0,0,0,0,0]]))
    
    t_7 = users.filter(json_data__json_string__contains='"exercise": "7h_or_more"')
    t_6 = users.filter(json_data__json_string__contains='"exercise": "4_6_hours"')
    t_3 = users.filter(json_data__json_string__contains='"exercise": "2_3_hours"')
Beispiel #20
0
def home(request):
        if request.is_ajax():
            pass   
Beispiel #21
0
            # Convert TargetMediumID to list and remove "+" ## Convert to checkbox answer.
            target_list = self.request.POST.get('TargetMediumID',None)
            self.target_list = target_list.split(' ')
            for c, target_item in enumerate(self.target_list):
                if target_item.startswith('+'):
                    self.target_list[c] = target_item[1:]

#            # Copy OnlyFlag       
#           self.copy_only_flag = self.request.POST.get('CopyOnlyFlag', None)
#           print 'copy_only_flag: %s %s' % (str(self.copy_only_flag), type(self.copy_only_flag))

            return self.form_valid(form)
        else:
            #print 'Form Not valid problem!!!'
            #print request.POST
            if request.is_ajax():
                return HttpResponseBadRequest()
            else:
                return self.form_invalid(form)
    
    def render_to_response2(self, context, **response_kwargs):
        #print 'render response!!!!'
        flag_json = 1
        if self.request.is_ajax():
            #print 'is_ajax!!!'           
            '''Render Datatables expected JSON format'''
            data = {
                'sEcho': 'test123echonew',
            }
            return self.json_response(data)
        else:
Beispiel #22
0
def school_data(request):
    
    if not request.is_ajax():
        return HttpResponseBadRequest()

    if request.POST.get('value', '') == '':
        return HttpResponseBadRequest()
        
    school = Schools.objects.get(id__exact=request.POST.get('value', ''))
    
#    js_school = school.values_list('name')[0][0]
    js_school = school.name
    js_school = js_school.split(",")[0].replace(" ", "_", 1).lower()
    #some unicode problem with school name
    js_school = js_school.replace(u"ä", "\u00e4")
    #Get respondants for school
    users = Person.objects.filter(time__expire_time=None).filter(
                                  json_data__json_string__contains='"school": "%s"' % js_school)
    
    user_ids = users.values_list('user_id', flat=True)
    
    #print (len(user_ids))
    
    home_ids = Property.objects.filter(expire_time=None).filter(
                                       json_string__contains='home').values_list('feature', flat=True)
    
    #print (len(home_ids))
    homes = Feature.objects.filter(expire_time=None).filter(
                                   id__in=list(home_ids)).filter(user_id__in=list(user_ids))
    
    #print len(homes)

    #Calculate the buffer valuesuser_ids = users.values_list('user_id', flat=True)
    m1000 = homes.filter(geometry__distance_lt=(school.coordinates, D(m=1000)))
    
    #print (len(m1000))
    
    m3000 = homes.filter(geometry__distance_lt=(school.coordinates, D(m=3000))).filter(
                         geometry__distance_gte=(school.coordinates, D(m=1000)))
    #print (len(m3000))
    
    m5000 = homes.filter(geometry__distance_lt=(school.coordinates, D(m=5000))).filter(
                         geometry__distance_gte=(school.coordinates, D(m=3000)))
    #print (len(m5000))
    m5001 = homes.filter(geometry__distance_gte=(school.coordinates, D(m=5000)))
    #print (len(m5001))
#    print len(homes.filter(geometry__distance_gte=(school.coordinates, D(m=1000))))
    
    num_of_students = [len(m1000), len(m3000), len(m5000), len(m5001)]
    
    m1000_to = 0
    m1000_from = 0
    m3000_to = 0
    m3000_from = 0
    m5000_to = 0
    m5000_from = 0
    m5001_to = 0
    m5001_from = 0
    
    # The times
    t1000 = 0;
    t3000 = 0;
    t5000 = 0;
    t5001 = 0;

    if not len(m1000) == 0:
        m1000_users = users.filter(time__expire_time=None).filter(
                                   user_id__in=m1000.values_list('user_id', flat=True))
        
        m1000_to = m1000_users.filter(
                                 Q(json_data__json_string__contains='"how_to_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_to_school": "bike"'))
        m1000_temp = m1000_users.exclude(user_id__in=m1000_to.values_list('user_id', flat=True))
        m1000_from = m1000_temp.filter(
                                 Q(json_data__json_string__contains='"how_from_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_from_school": "bike"'))
#        m1000_from = m1000_users.filter(
#                                 Q(json_data__json_string__contains='"how_from_school": "walk"') | 
#                                 Q(json_data__json_string__contains='"how_from_school": "bike"'))

        # for a in m1000_users:
            # b = a.json_data.get('school_journey')
            # if b != None:
                # try:
                    # print a.json_data.get('username')
                    # print b['how_to_school']
                    # print b['how_from_school']
                # except:
                    # pass

        # print(len(m1000_users))
        # print(len(m1000_to))
        # print(len(m1000_temp))
        # print(len(m1000_from))
        m1000_to = float(len(m1000_to))/len(m1000)
        m1000_from = float(len(m1000_from))/len(m1000)
        
        for u in m1000_users:
            if u.json_data.get("school_journey") != None:
                try:
                    t1000 += float(u.json_data.get("school_journey")["time_from_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_from_school"]:
                        temp = u.json_data.get("school_journey")["time_from_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t1000 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_from_school"])
                        if temp != '':
                            t1000 += float(temp)
                try:
                    t1000 += float(u.json_data.get("school_journey")["time_to_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_to_school"]:
                        temp = u.json_data.get("school_journey")["time_to_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t1000 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_to_school"])
                        if temp != '':
                            t1000 += float(temp)
        try:
            t1000 = t1000 / len(m1000_users)
        except ZeroDivisionError:
            t1000 = 0

    if not len(m3000) == 0:
        m3000_users = users.filter(time__expire_time=None).filter(
                                   user_id__in=m3000.values_list('user_id', flat=True))
    
        m3000_to = m3000_users.filter(
                                 Q(json_data__json_string__contains='"how_to_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_to_school": "bike"'))
        m3000_temp = m3000_users.exclude(user_id__in=m3000_to.values_list('user_id', flat=True))
        m3000_from = m3000_temp.filter(
                                 Q(json_data__json_string__contains='"how_from_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_from_school": "bike"'))

        m3000_to = float(len(m3000_to))/len(m3000)
        m3000_from = float(len(m3000_from))/len(m3000)

        for u in m3000_users:
            if u.json_data.get("school_journey") != None:
                try:
                    t3000 += float(u.json_data.get("school_journey")["time_from_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_from_school"]:
                        temp = u.json_data.get("school_journey")["time_from_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t3000 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_from_school"])
                        if temp != '':
                            t3000 += float(temp)
                try:
                    t3000 += float(u.json_data.get("school_journey")["time_to_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_to_school"]:
                        temp = u.json_data.get("school_journey")["time_to_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t3000 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_to_school"])
                        if temp != '':
                            t3000 += float(temp)
        try:
            t3000 = t3000 / len(m3000_users)
        except ZeroDivisionError:
            t3000 = 0
    
    if not len(m5000) == 0:
        m5000_users = users.filter(time__expire_time=None).filter(
                                   user_id__in=m5000.values_list('user_id', flat=True))
    
        m5000_to = m5000_users.filter(
                                 Q(json_data__json_string__contains='"how_to_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_to_school": "bike"'))
        m5000_temp = m5000_users.exclude(user_id__in=m5000_to.values_list('user_id', flat=True))
        m5000_from = m5000_temp.filter(
                                 Q(json_data__json_string__contains='"how_from_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_from_school": "bike"'))

        m5000_to = float(len(m5000_to))/len(m5000)
        m5000_from = float(len(m5000_from))/len(m5000)

        for u in m5000_users:
            if u.json_data.get("school_journey") != None:
                try:
                    t5000 += float(u.json_data.get("school_journey")["time_from_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_from_school"]:
                        temp = u.json_data.get("school_journey")["time_from_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t5000 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_from_school"])
                        if temp != '':
                            t5000 += float(temp)
                try:
                    t5000 += float(u.json_data.get("school_journey")["time_to_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_to_school"]:
                        temp = u.json_data.get("school_journey")["time_to_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t5000 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_to_school"])
                        if temp != '':
                            t5000 += float(temp)
        try:
            t5000 = t5000 / len(m5000_users)
        except ZeroDivisionError:
            t5000 = 0
    
    if not len(m5001) == 0:
        m5001_users = users.filter(time__expire_time=None).filter(
                                   user_id__in=m5001.values_list('user_id', flat=True))
    
        m5001_to = m5001_users.filter(
                                 Q(json_data__json_string__contains='"how_to_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_to_school": "bike"'))
        m5001_temp = m5001_users.exclude(user_id__in=m5001_to.values_list('user_id', flat=True))
        m5001_from = m5001_temp.filter(
                                 Q(json_data__json_string__contains='"how_from_school": "walk"') | 
                                 Q(json_data__json_string__contains='"how_from_school": "bike"'))

        m5001_to = float(len(m5001_to))/len(m5001)
        m5001_from = float(len(m5001_from))/len(m5001)

        for u in m5001_users:
            if u.json_data.get("school_journey") != None:
                try:
                    t5001 += float(u.json_data.get("school_journey")["time_from_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_from_school"]:
                        temp = u.json_data.get("school_journey")["time_from_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t5001 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_from_school"])
                        if temp != '':
                            t5001 += float(temp)
                try:
                    t5001 += float(u.json_data.get("school_journey")["time_to_school"])
                except ValueError:
                    if "-" in u.json_data.get("school_journey")["time_to_school"]:
                        temp = u.json_data.get("school_journey")["time_to_school"].split("-")
                        if temp != None:
                            a =  re.sub('[^\d]+', '', temp[0])
                            b =  re.sub('[^\d]+', '', temp[1])
                            if a == '':
                                a = 0
                            if b == '':
                                b = 0
                            temp = (float(a) + float(b))/2.0
                            t5001 += temp
                    else:
                        temp = re.sub('[^\d]+', '', u.json_data.get("school_journey")["time_to_school"])
                        if temp != '':
                            t5001 += float(temp)
        try:
            t5001 = t5001 / len(m5001_users)
        except ZeroDivisionError:
            t5001 = 0

    
                
    
#    print(len(m1000_to))
#    print(len(m1000_from))
#    print(len(m3000_to))
#    print(len(m3000_from))
#    print(len(m5000_to))
#    print(len(m5000_from))
#    print(len(m5001_to))
#    print(len(m5001_from))
    
#    print(t1000)
#    print(t3000)
#    print(t5000)
#    print(t5001)
    
    # Create features
    # First we create buffers
    b1000 = school.coordinates.buffer(1000)
    b3000 = school.coordinates.buffer(3000)
    b5000 = school.coordinates.buffer(5000)

    #calculate distance to the farthest home point from school
    f_dist = 0
    for h in m5001:
        temp_dist = Schools.objects.filter(
                            id__exact=request.POST.get('value', '')).distance(
                            h.geometry)[0].distance.m
        if temp_dist > f_dist:
            f_dist = temp_dist
#        print ('f_dist:' )
#        print (f_dist)
#        print (Schools.objects.filter(
#                            id__exact=request.POST.get('value', '')).distance(
#                            h.geometry)[0].distance.m)

    
    b5001 = school.coordinates.buffer(f_dist)
    
    # then we need to make the rings
    r3000 = b3000.difference(b1000)
    r5000 = b5000.difference(b3000)
    r5001 = b5001.difference(b5000)
    
    # Hardcoded way to make features
    features = []
    
    features.append({
                     "geometry": json.loads(b1000.json),
                     "properties": {
                                    "homes": len(m1000),
                                    "to": m1000_to * 100,
                                    "from": m1000_from * 100,
                                    "travel": ((m1000_to + m1000_from)) * 100,
                                    "time": t1000,
                                    "name": "1000"
                                    }
                     })
    features.append({
                     "geometry": json.loads(r3000.json),
                     "properties": {
                                    "homes": len(m3000),
                                    "to": m3000_to * 100,
                                    "from": m3000_from * 100,
                                    "travel": ((m3000_to + m3000_from)) * 100,
                                    "time": t3000,
                                    "name": "3000"
                                    }
                     })
    features.append({
                     "geometry": json.loads(r5000.json),
                     "properties": {
                                    "homes": len(m5000),
                                    "to": m5000_to * 100,
                                    "from": m5000_from * 100,
                                    "travel": ((m5000_to + m5000_from)) * 100,
                                    "time": t5000,
                                    "name": "5000"
                                    }
                     })
    features.append({
                     "geometry": json.loads(r5001.json),
                     "properties": {
                                    "homes": len(m5001),
                                    "to": m5001_to * 100,
                                    "from": m5001_from * 100,
                                    "travel": ((m5001_to + m5001_from)) * 100,
                                    "time": t5001,
                                    "name": "5001"
                                    }
                     })
    features.append({
                     "geometry": json.loads(school.coordinates.json),
                     "properties": {
                                    "name": school.name,
Beispiel #23
0
def xhr_test(request):
    if request.is_ajax():
        message = "Hello, AJAX!"
    else:
        message = "Hello!"
    return HttpResponse(message)
Beispiel #24
0
    time_class_data = []
    time_class_data.append((len(t_7)/total_users)*100)
    time_class_data.append((len(t_6)/total_users)*100)
    time_class_data.append((len(t_3)/total_users)*100)
    time_class_data.append((len(t_1)/total_users)*100)
    time_class_data.append((len(t_none)/total_users)*100)
    
    return HttpResponse(json.dumps([time_class_data]))
    

@permission_required('softGISview.view_data', raise_exception=True)
def get_screen_times(request):
     
    if not request.is_ajax():
        return HttpResponseBadRequest()

    if request.POST.get('value', '') == '':
        return HttpResponseBadRequest()

    school = Schools.objects.get(id__exact=request.POST.get('value', ''))
    
#    js_school = school.values_list('name')[0][0]
    js_school = school.name
    js_school = js_school.split(",")[0].replace(" ", "_", 1).lower()
    #some unicode problem with school name
    js_school = js_school.replace(u"ä", "\u00e4")
    #Get respondants for school
    users = Person.objects.filter(time__expire_time=None).filter(
                                  json_data__json_string__contains='"school": "%s"' % js_school)
    
    boys = users.filter(json_data__json_string__contains='"gender": "boy"')
    girls = users.filter(json_data__json_string__contains='"gender": "girl"')

    total_boys = float(len(boys))
    total_girls = float(len(girls))
    
    if len(boys) > 0:
        tv_over2h_boys = boys.filter(
                         Q(json_data__json_string__contains='"tv_computer": "more_5_hours"') | 
                         Q(json_data__json_string__contains='"tv_computer": "2_4_hours"'))

        tv_under2h_boys = boys.filter(
                         Q(json_data__json_string__contains='"tv_computer": "1_2_hours"') | 
                         Q(json_data__json_string__contains='"tv_computer": "less_1_hours"') |
                         Q(json_data__json_string__contains='"tv_computer": "none"'))

        social_over2h_boys = boys.filter(
                         Q(json_data__json_string__contains='"sos_network": "more_5_hours"') | 
                         Q(json_data__json_string__contains='"sos_network": "2_4_hours"'))

        social_under2h_boys = boys.filter(
                         Q(json_data__json_string__contains='"sos_network": "1_2_hours"') | 
                         Q(json_data__json_string__contains='"sos_network": "less_1_hours"') |
                         Q(json_data__json_string__contains='"sos_network": "none"'))
        
        tv_o2h_b = (len(tv_over2h_boys)/total_boys)*100
        tv_u2h_b = (len(tv_under2h_boys)/total_boys)*100
        sos_o2h_b = (len(social_over2h_boys)/total_boys)*100
        sos_u2h_b = (len(social_under2h_boys)/total_boys)*100
        tv_eos_b = 100 - (tv_o2h_b + tv_u2h_b)
        sos_eos_b = 100 - (sos_o2h_b + sos_u2h_b)
        
        tv_b = [[_(u'Over 2 hours'), tv_o2h_b],[_(u'Less than 2 hours'), tv_u2h_b],[_(u'No answer'), tv_eos_b]]
        sos_b = [[_(u'Over 2 hours'), sos_o2h_b],[_(u'Less than 2 hours'), sos_u2h_b],[_(u'No answer'), sos_eos_b]]

    else:
        tv_b = [[_(u'Over 2 hours'), 0],[_(u'Less than 2 hours'), 0],[_(u'No answer'), 0]]
        sos_b = [[_(u'Over 2 hours'), 0],[_(u'Less than 2 hours'), 0],[_(u'No answer'), 0]]
        
    if len(girls) > 0:
        tv_over2h_girls = girls.filter(
                         Q(json_data__json_string__contains='"tv_computer": "more_5_hours"') | 
                         Q(json_data__json_string__contains='"tv_computer": "2_4_hours"'))


        tv_under2h_girls = girls.filter(
                         Q(json_data__json_string__contains='"tv_computer": "1_2_hours"') | 
                         Q(json_data__json_string__contains='"tv_computer": "less_1_hours"') |
                         Q(json_data__json_string__contains='"tv_computer": "none"'))

        social_over2h_girls = girls.filter(
                         Q(json_data__json_string__contains='"sos_network": "more_5_hours"') | 
                         Q(json_data__json_string__contains='"sos_network": "2_4_hours"'))

        social_under2h_girls = girls.filter(
                         Q(json_data__json_string__contains='"sos_network": "1_2_hours"') | 
                         Q(json_data__json_string__contains='"sos_network": "less_1_hours"') |
                         Q(json_data__json_string__contains='"sos_network": "none"'))
    
        tv_o2h_g = (len(tv_over2h_girls)/total_girls)*100
        tv_u2h_g = (len(tv_under2h_girls)/total_girls)*100
        sos_o2h_g = (len(social_over2h_girls)/total_girls)*100
        sos_u2h_g = (len(social_under2h_girls)/total_girls)*100
        tv_eos_g = 100 - (tv_o2h_g + tv_u2h_g)
        sos_eos_g = 100 - (sos_o2h_g + sos_u2h_g)

        tv_g = [[_(u'Over 2 hours'), tv_o2h_g],[_(u'Less than 2 hours'), tv_u2h_g],[_(u'No answer'), tv_eos_g]]
        sos_g = [[_(u'Over 2 hours'), sos_o2h_g],[_(u'Less than 2 hours'), sos_u2h_g],[_(u'No answer'), sos_eos_g]]