def post(self, request, *args, **kwargs): visble_q_types = [] for key in request.POST: if key.startswith('quest-type'): visble_q_types.append(int(key[-1])) if Settings.objects.filter(user=request.user).exists(): setting = Settings.objects.get(user=request.user) setting.options = {'visible_type': visble_q_types} else: setting = Settings() setting.user = request.user setting.options = {'visible_type': visble_q_types} setting.save() return self.get(request, *args, **kwargs)
def api_saveSettings(request): if request.user.is_authenticated(): try: settings = Settings.objects.get(user=request.user) except: settings = Settings() settings.user = request.user form = SettingsForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass if form.cleaned_data['reminders']: settings.reminderDays = form.cleaned_data['reminderDays'] else: settings.reminderDays = 0 settings.defaultFB = form.cleaned_data['defaultFB'] settings.defaultPublic = form.cleaned_data['defaultPublic'] settings.save() return HttpResponse("Saved.") else: return HttpResponse("Something broke.") else: return HttpResponseForbidden()
def index(request,username=None,inFb=False): if request.user.is_authenticated() or username is not None: import datetime if request.user.is_authenticated(): gtForm = GoodThingForm() else: gtForm = None #get some stats for the user if username is not None: try: statsuser = User.objects.get(username=username) except: return HttpResponseNotFound("User not found.") else: #someone is looking at their homepage. let's make sure we have a current token. fb = django_facebook.api.get_persistent_graph(request) try: trial = fb.get('me/friends') except: #no valid oauth token, get them to log in again. logout(request) t = loader.get_template('index.html') c = RequestContext(request,{'inFb':inFb}) return HttpResponse(t.render(c)) statsuser = request.user #okay, so we should add some settings try: settings = Settings.objects.select_related().get(user=request.user) except: settings = Settings() settings.user = request.user settings.save() initial={'defaultFB': settings.defaultFB, 'defaultPublic': settings.defaultPublic} if settings.reminderDays != 0: initial['reminders']=True initial['reminderDays']=settings.reminderDays else: initial['reminders'] = False; settingsForm = SettingsForm(initial=initial) gtcount = GoodThing.objects.filter(user=statsuser).filter(deleted=False).count() perday = float(gtcount)/max(((timezone.now() - statsuser.date_joined).days),1) if gtcount > 0: try: wc = WordClouds.objects.get(user=statsuser) except: wc = WordClouds() wc.user = statsuser wc.updateClouds() else: wc = None t = loader.get_template('myview.html') cdict = {'form':gtForm,'gtcount':gtcount,'perday':perday,'wc':wc,'inFb':inFb} if username is not None: cdict['viewuser'] = statsuser else: cdict['settings'] = settings cdict['settingsform'] = settingsForm c = RequestContext(request,cdict) return HttpResponse(t.render(c)) #and if not, let's get them logged in else: #return HttpResponse(request.__str__()) t = loader.get_template('index.html') c = RequestContext(request,{'inFb':inFb}) return HttpResponse(t.render(c))