예제 #1
0
파일: views.py 프로젝트: cursorzz/kuaijiti
 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)
예제 #2
0
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()
예제 #3
0
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))