Пример #1
0
 def setUp(self):
     UserPreferences.objects.all().delete()
     UserPreferences(user_id=self.USER_ID,
                     home_location=(-20.2877528, -40.2932812),
                     min_price=0,
                     max_price=4,
                     radius_in_meters=5000,
                     restaurant_types=['italian', 'brazilian',
                                       'BBQ']).save()
Пример #2
0
 def makeUserPrefs(self, **override):
     defaults = {
         'user': self.normal,
         'zosia': self.zosia,
         'contact': 'fb: me',
         'shirt_size': 'S',
         'shirt_type': 'f',
         'terms_accepted': True
     }
     defaults.update(**override)
     return UserPreferences(**defaults)
Пример #3
0
def get_default_user_preference(user_id):
    user_preferences = UserPreferences()
    try:
        user_preferences = UserPreferences.objects.get(user_id=user_id)
    except UserPreferences.DoesNotExist:
        """
        Return the default preferences if query set returns empty preferences
        """
        user_preferences.timezone_field = UserPreferences._meta.get_field(
            'timezone_field').get_default()
        user_preferences.available_days = UserPreferences._meta.get_field(
            'available_days').get_default()
        user_preferences.available_from = datetime.strptime(
            UserPreferences._meta.get_field('available_from').get_default(),
            '%H:%M:%S.%f').time()
        user_preferences.available_till = datetime.strptime(
            UserPreferences._meta.get_field('available_till').get_default(),
            '%H:%M:%S.%f').time()
    return user_preferences
Пример #4
0
def createUsers(request):
    user_obj = User.objects.get(id=request.user.id)
    if user_obj.is_staff == 0:
        return HttpResponseRedirect('/users/')#user does not have permission to see admin page
    s = xmlrpclib.Server(serverPort, allow_none=True)
    loc_list = s.QueryInterfaceImpl.rpcGetValues("Location", dataset_id)
    regions=Regions.objects.defer("id").order_by('short')#.values_list('short', flat=True)
    regions_lookup={}
    for r in regions:
        regions_lookup[r.short]=r.long
    regions_lookup=json.dumps(regions_lookup) 
    isCreated = False;
    username = request.GET.get("UserName")
    if username == '':
 	return render(request,'admin.html', {'isCreated':isCreated, 'missedValue':'Username',"regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list}) 
    try:
        user_obj = User.objects.get(username=username)
    except User.DoesNotExist:
        user_obj = None
    if user_obj is not None:
        return render(request,'admin.html', {'isCreated':isCreated, 'dupValue':'Username',"regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list})
    firstname = request.GET.get("FirstName")
    if firstname == '':
 	return render(request,'admin.html', {'isCreated':isCreated, 'missedValue':'First Name', "regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list}) 
 
    lastname = request.GET.get("LastName")
    if lastname == '':
 	return render(request,'admin.html', {'isCreated':isCreated, 'missedValue':'Last Name',"regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list}) 
 
    email = request.GET.get("email")
    if email == '':
 	return render(request,'admin.html', {'isCreated':isCreated, 'missedValue':'email',"regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list}) 
 
    password = request.GET.get("Password")
    if password == '':
 	return render(request,'admin.html', {'isCreated':isCreated, 'missedValue':'Password',"regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list}) 


    prefstates=request.GET.getlist("State")
    preflocs=request.GET.getlist("Location") 
    if '' in prefstates:
        prefstates.remove('')
    if '' in preflocs:
        preflocs.remove('')
    if len(prefstates)==0:
        return render(request,'admin.html', {'isCreated':isCreated, 'missedValue':'No state selected',"regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list})

    if request.GET.get('isSuperUser') is None:
        isSuperUser = False
    else:
        isSuperUser = True

    if request.GET.get('isStaff') is None:
        isStaff = False
    else:
        isStaff = True
 
    if request.GET.get('saveHist') is None:
        isSaveHist = 0
    else: 
        isSaveHist = 1
 
    if request.GET.get('hidePictures') is None:
        isHidePic = 0
    else:
        isHidePic = 1
 
    if request.GET.get('blurPictures') is None:
        isBlurPic = 0
    else:
        isBlurPic = 1
    newUser = User.objects.create_user(username,email,password)
    newUser.first_name=firstname
    newUser.last_name=lastname
    newUser.is_staff=isStaff 
    newUser.save()
    #set user preferences
    newPref = UserPreferences(user=newUser, save_history = isSaveHist, hide_pictures=isHidePic, blur_pictures=isBlurPic)
    newPref.save()
    for st in prefstates:
        UserLocPref(user=newUser,type='state',value=str(st)).save()
    if len(preflocs)>0:
        for loc in preflocs:
            UserLocPref(user=newUser,type='location',value=str(loc)).save()
    isCreated = True
    return render(request,'admin.html', {'user_created':newUser,"isCreated":isCreated,"regions":regions,"regions_lookup":regions_lookup,"location_list":loc_list})    
Пример #5
0
def changePrefs(request):
    s = xmlrpclib.Server(serverPort, allow_none=True)
    user_obj = User.objects.get(id=request.user.id)
    try:
	user_pref = UserPreferences.objects.get(user=user_obj)
        user_pref_old = deepcopy(user_pref)
    except UserPreferences.DoesNotExist:
        user_pref = UserPreferences(user=user_obj)
        user_pref_old = deepcopy(user_pref)
    user_states = UserLocPref.objects.filter(user=user_obj,type='state')
    user_locs = UserLocPref.objects.filter(user=user_obj,type='location')
    changesMade=False
    prefstates=request.GET.getlist("State")
    preflocs=request.GET.getlist("Location")
    if '' in prefstates:
        prefstates.remove('')
    if '' in preflocs:
        preflocs.remove('')
    #if states have been selected, delete old states, add new states
    if len(prefstates)>0:	
        changesMade=True
        if user_states.exists():
            user_states.delete()
        for st in prefstates:
            UserLocPref(user=user_obj,type='state',value=str(st)).save()
        #clear locations
        if user_locs.exists():
            user_locs.delete()
        #add new locations in case any have been selected. 
        if len(preflocs)>0:
            for loc in preflocs:
                UserLocPref(user=user_obj,type='location',value=str(loc)).save()
    else:
        #no changes to states or locations made. Get current vaules
        if user_states.exists():
            prefstates = user_states.values_list('value',flat=True)
        else:
            prefstates=[]
        if user_locs.exists():
            preflocs = user_locs.values_list('value',flat=True)
        else:
            preflocs=[]
    
    if request.GET.get('saveHist') is None:
        user_pref.save_history = 0
    else:
        user_pref.save_history = 1
    if request.GET.get('hidePictures') is None:
        user_pref.hide_pictures = 0
    else:
        user_pref.hide_pictures = 1
    if request.GET.get('blurPictures') is None:
        user_pref.blur_pictures = 0
    else:
        user_pref.blur_pictures = 1
    #user_pref.email_alerts = 
    #user_pref.notify_common_flags =

    user_pref.save()

    #check if settings have changed
    if user_pref.save_history!=user_pref_old.save_history:
        changesMade=True
    elif user_pref.hide_pictures !=user_pref_old.hide_pictures:
        changesMade=True
    elif user_pref.blur_pictures!=user_pref_old.blur_pictures:
        changesMade=True

    #regions and locations for user interface:
    loc_list = s.QueryInterfaceImpl.rpcGetValues("Location", dataset_id)
    regions=Regions.objects.defer("id").order_by('short')#.values_list('short', flat=True)
    regions_lookup={}
    for r in regions:
        regions_lookup[r.short]=r.long
    regions_lookup=json.dumps(regions_lookup)

    return render(request,'settings.html', {'changesMade':changesMade,'user':user_obj,"preferences":user_pref,
		 			   "user_locations":", ".join(preflocs),"regions":regions,"regions_lookup":regions_lookup,
					    "location_list":loc_list,"user_states":", ".join(prefstates)})