コード例 #1
0
ファイル: views.py プロジェクト: pootytang/UWPython
def create_poll(request):
    # Only allowed via post
    if request.method == "POST" and request.POST['question'] and request.POST['answer'] and request.POST['userCode']:
        question = request.POST['question']
        answer = '''
        [{
            "text": "%s"
        }, {
            "text": "%s"
        }]'''

        # Check the answer
        if request.POST['answer'].lower() == 'yes/no':
            answer = answer %  ('yes', 'no')
        else:
            answer = answer % ('true', 'false')

        pd = pollAPI(uid)
        pd.setUserCode(request.POST['userCode'])

        # Create the poll
        newPollJSON = pd.createPollJSON(question, ans=answer)
        return r2r('polldaddy/create.html', {'poll': newPollJSON})
    else:
        return httpRedirect('/pd/')

    return r2r('polldaddy/create.html')
コード例 #2
0
ファイル: views.py プロジェクト: pootytang/UWPython
def index(request):
    results = {}
    message = 'Problem retrieving info'
    if uid:
        results['title'] = 'Poll Manager'
        # Get and set the UserCode
#        uid = request.REQUEST['uid']
        results['uid'] = uid
        pd = pollAPI(uid)

        #Start UserCode timer
        start = time()
        codeJSON = pd.getUserCodeJSON(uid) # maybe try to move this to the top of this script or in settings
        stop = time()
        userCodeSpeed = stop - start
        uCode = pd.parseUserCode(codeJSON) # maybe move this as well
        pd.setUserCode(uCode) # and this
        results['userCode'] = uCode
        
        # Get the list of IDs with Questions
        start = time()
        pollIDsJSON = pd.getPollsJSON(uCode) #returns the json response
        stop = time()
        pollIDs = pd.getPollIDs(pollIDsJSON)
        
        pollIDsSpeed = stop - start
        results['pollIDs'] = pollIDs
        
        # show the speeds
        message1 = 'Time (in seconds) to retrieve the userCode: %.2f' % userCodeSpeed
        message2 = 'Time (in seconds) to retrieve the pollID list: %.2f' % pollIDsSpeed
        results['message'] = [message1, message2]
    
    return r2r('polldaddy/main.html', results)
コード例 #3
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def add2(request):
    user = request.user
    print "add2"
    w = MongoWorkout()
    #w.wods.remove()
    print 'm'
    post = request.POST['data']
    print post
    #post =  request.raw_post_data
    #print post
    #validate the json!!!!
    print request.raw_post_data
    w.json = post
    w.user_id = request.user.id
    w.insert()
    #print '1'
    #json = simplejson.loads(request.raw_post_data)
    
    #print '2'
    #print json['data']
    #json = serializers.deserialize("json", json)
    #print json
    #w.wods.insert(json)
    #return HttpResponse("Submitted", mimetype='text/plain')
    return r2r('add2.html', {'title': w.title, 'url': w.get_absolute_url() })
コード例 #4
0
def render_to_response(template, context={}, request=None, mimetype="text/html"):
    if request:
        context_instance = RequestContext(request)
    else:
        context_instance = None
    
    return r2r(template, context, context_instance, mimetype=mimetype)
コード例 #5
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def add_wod(request):
    if debug:
        print '- add wod'
        
    user = request.user
    if request.method == 'POST':
        print request.POST
        form = WodForm(request.POST)
        
        if form.is_valid():
            w = Workout()
            w.title = form.cleaned_data['name']
            w.user = user
            w.workout = form.cleaned_data['workout']
            w.save()
            w.set_tags(fix_tags(form.cleaned_data['wod_tags']))
            print w.id
            
            if form.cleaned_data.get('has_result', False):
                print 'storing result    '
                r = Result()
                r.user = user
                tempdate = form.cleaned_data['date']
    
                tempdate = time.strptime(tempdate,"%m/%d/%Y")
                r.date = time.strftime("%Y-%m-%d",tempdate)
    
                r.workout = w
                r.result = form.cleaned_data['results']
                r.time = form.cleaned_data['time']
                r.weight = form.cleaned_data['weight']
                r.notes = form.cleaned_data['notes']
                r.save()
                
                #for tag in form.cleaned_data['tags'].split(','):
                    #r.add_tag(tag)
                print form.cleaned_data['tags']
                print "1!!!!!!!"
                rtags = "%s, %s" % (fix_tags(form.cleaned_data['wod_tags']), fix_tags(form.cleaned_data['tags']))
                print rtags
                r.set_tags(rtags)
                #print form.cleaned_data['wod_tags']
                #print fix_tags(form.cleaned_data['wod_tags'])
                print "2!!!!!!!"
                #r.set_tags(fix_tags(form.cleaned_data['tags']))
            
            
            #w.set_tags(form.cleaned_data['tags'].replace(' ', '_'))
            print 'posting'
            posted = True
        else:
            print 'not valid?'
            
    else:
        form = WodForm(initial={'date': datetime.datetime.now().strftime("%m/%d/%Y"), 'has_result': True})
        #form.date = datetime.datetime.now().strftime("%d/%m/%Y")
        
        
    return r2r('add.html', locals(), context_instance=RequestContext(request))
コード例 #6
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def wods_filter_json(request):
    print 'hi2'
    json = request.POST['json']
    json = simplejson.loads(json)
    print json['exes']

    
    return r2r('index_wods.html', locals(), context_instance=RequestContext(request))
コード例 #7
0
ファイル: shortcuts.py プロジェクト: ebrelsford/cas_food
def render_to_response(template, context={}, context_instance=None):
    """
    Wraps django.shortcuts.render_to_response, changing the template dir based 
    on IS_MOBILE in the request context, which should be put there by 
    middleware.
    """
    return r2r(get_template(template, context_instance['request']), context,
               context_instance=context_instance)
コード例 #8
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def result_tag(request, tagslug):
    if debug:
        print '- result tag'
        
    results = TaggedItem.objects.get_by_model(Result, tagslug).order_by('-date')
    header = "Tagged Results: %s" % Tag.objects.get(name=tagslug)
    user = request.user
    return r2r('singleresult.html', locals())
コード例 #9
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def get_measures_json(request):
    try:
        ids = request.GET['ms']
    except:
        return #HttpResponse({'error': 'measure ids not found'}, mimetype='application/json')

    ids = ids.split(',')
    scores = Score.objects.filter(id__in=ids)
    return r2r('get_measures.html', {'scores': scores})
コード例 #10
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def wod_tag(request, tagslug):
    if debug:
        print '- wod tag'
        
    results = get_paginator(request, TaggedItem.objects.get_by_model(Workout, tagslug).order_by('-created_at'), 10)
    print Workout.objects.all().order_by('-created_at')
    header = "Tagged Workouts: %s" % Tag.objects.get(name=tagslug)
    user = request.user
    return r2r('tagwod.html', locals())
コード例 #11
0
ファイル: views.py プロジェクト: Cowen/sandbox
def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST, initial={'sender': '*****@*****.**'})
        if form.is_valid():
            topic = form.clean_data['topic']
            message = form.clean_data['message']
            sender = form.clean_data.get('sender', '*****@*****.**')
            send_mail('Feedback from your site, topic: %s' % topic, message, sender, ['*****@*****.**'])
            return HttpResponseRedirect('/contact/thanks/')
    else:
        form = ContactForm(initial={'sender': '*****@*****.**'})
    return r2r('contact.html', {'form': form})
コード例 #12
0
ファイル: views.py プロジェクト: sdutlinux/pahchina
def pah_register(request):
    """ 网站注册
    注册后同步创建其他身份
    """
    if request.method == "POST":
        form = forms.RegisterForm(request.POST.copy(), view_request=request)
        if form.is_valid():
            form.save()
            messages.success(request, '注册成功, 请前往注册邮箱激活帐号!')
            return HttpResponseRedirect(reverse('login'))
    if request.user.is_authenticated(): return HttpResponseRedirect(reverse_lazy("index"))
    form = forms.RegisterForm
    return r2r('register.html', locals(), context_instance=RequestContext(request))
コード例 #13
0
ファイル: views.py プロジェクト: pootytang/UWPython
def delete_poll(request):
    #template looking for id and poll
    message = 'There was a problem with the delete form.  Make sure at least one value is selected'
    response = r2r('polldaddy/delete_poll_error.html', {'message': message})

    if request.method == 'POST' and 'pid' in request.POST:
        results = {}
        pid = request.POST.getlist('pid')
        uid = request.POST['uid']
        uCode = request.POST['userCode']
        results['pid'] = pid
        results['uid'] = uid
        results['userCode'] = uCode

        # delete the poll belonging to pid
        pd = pollAPI(uid)
        pd.setUserCode(uCode)
        pollJSON = []
        for pollID in pid:
            pollJSON.append(pd.deletePollJSON(pollID))
        results['polls'] = pollJSON
        response = r2r('polldaddy/deletepoll.html', results)
    return response
コード例 #14
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def settings(request):
    user = request.user
    if request.method == 'POST':
        form = SettingsForm(request.POST)
        if form.is_valid():
            user.email = form.cleaned_data['email']
            user.get_profile().private_wods = form.cleaned_data['private_wods']
            
            user.save()
            user.get_profile().save()
            posted = True
    else:
        form = SettingsForm(initial={'email': user.email, 'private_wods': user.get_profile().private_wods})
    
    return r2r('settings.html', locals(), context_instance=RequestContext(request))
コード例 #15
0
ファイル: views.py プロジェクト: Cowen/sandbox
def search(request):
    query = request.GET.get('q','')
    if query:
        qset = (
            Q(title__icontains=query) |
            Q(authors__first_name__icontains=query) |
            Q(authors__last_name__icontains=query)
        )
        results = Book.objects.filter(qset).distinct()
    else:
        results = []
    return r2r('search.html', {
        'results': results,
        'query': query
    })
コード例 #16
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def result_add_ajax_form(request):
    if debug:
        print '- ajax add form'
        
    wod_id = request.GET.get('wod_id')
    if request.is_ajax() and wod_id:
        action = 'add/'
        tags = Workout.objects.get(id=wod_id).get_tags()
        
        if request.method == 'POST':
            print 'post'
            form = ResultFormAjax(request.POST)
        else:
            form = ResultFormAjax()
        print form
        return r2r('resultform.html', locals(), context_instance=RequestContext(request))
コード例 #17
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def result_single(request, wodslug, username):
    if debug:
        print '- result single'
        
    user = get_object_or_404(User, username=username)
    wod = get_object_or_404(Workout, slug=wodslug)
    #results = Result.private_objects.filter(workout__slug=wodslug, user=user)
    print "2"
    print user.is_authenticated()
    print user.get_profile().private_wods
    
    if (request.user.is_authenticated() and request.user.get_profile().private_wods) or not user.get_profile().private_wods:
        
        results = Result.objects.filter(workout = wod, user=user).order_by('-date')
        show = True
        print results
    return r2r('singleresult.html', locals())
コード例 #18
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def home_user(request, username):
    if debug:
        print '- home user'
        
    user = get_object_or_404(User, username=username)
    show = False
    if user.get_profile().private_wods:
        if request.user == user:
            show = True
    else:
        show = True
    
    results = get_paginator(request, Result.objects.filter(user=user).order_by('-date'), 20)
    tag_cloud_template = 'tags_home_user.html'
    header = "%s's Recent Workouts" % username
    title = username
    return r2r('index.html', locals())
コード例 #19
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def result_add_ajax(request):
    if debug:
        print '- ajax add form'
        
    if request.is_ajax():
        m = MongoResult()
        #w.wods.remove()
        print 'm'
        post = request.POST['json']
        print post
        #post =  request.raw_post_data
        #print post
        #validate the json!!!!
        print request.raw_post_data
        m.json = post
        m.user_id = request.user.id
        m.insert()
        return r2r('addresult.json', {}, context_instance=RequestContext(request))
コード例 #20
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def result_tag_user(request, username, tagslug):
    if debug:
        print '- result tag user'
        
    user = get_object_or_404(User, username=username)
    results = TaggedItem.objects.get_by_model(Result, tagslug).order_by('-date')
    if (request.user.is_authenticated() and request.user.get_profile().private_wods) or not user.get_profile().private_wods:
        results = results.filter(user=user)
        show = True
    
    results = get_paginator(request, results, 10)
    
    if request.user.is_authenticated() and request.user.username == username:
        message = 'You have not logged any results with this tag'
    
    header = "Tagged Results: %s" % Tag.objects.get(name=tagslug)
    user = request.user
    return r2r('tagresult.html', locals())
コード例 #21
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def result_add_form(request, wodslug):
    if debug:
        print '- in result add form'
        
    wod_id = request.GET.get('wod_id')
    print request.POST
    wod = get_object_or_404(Workout, slug=wodslug)
    tags = Workout.objects.get(id=wod.id).get_tags()
    action = ''
    user = request.user
    if request.method == 'POST':
        print 'post'
        form = ResultFormAdd(request.POST)
        if form.is_valid():
            print "VALID"
            r = Result()
            r.user = user
            tempdate = form.cleaned_data['date']

            tempdate = time.strptime(tempdate,"%m/%d/%Y")
            r.date = time.strftime("%Y-%m-%d",tempdate)

            r.workout = wod
            r.result = form.cleaned_data['results']
            r.time = form.cleaned_data['time']
            r.weight = form.cleaned_data['weight']
            r.notes = form.cleaned_data['notes']
            r.save()
            
            #for tag in form.cleaned_data['tags'].split(','):
                #r.add_tag(tag)
            print form.cleaned_data['tags']
            tt = []
            for tag in wod.get_tags():
                tt.append(tag.name)
            r.set_tags(", ".join(tt))
            r.set_tags(fix_tags(form.cleaned_data['tags']))
            submitted = True
        else:
            print 'crap'
    else:
       form = ResultFormAdd()

    return r2r('addresult.html', locals(), context_instance=RequestContext(request))
コード例 #22
0
ファイル: views.py プロジェクト: pootytang/UWPython
def edit_poll(request):
    results = {}

    if 'pid' in request.REQUEST:
        pid = request.POST['pid']
        uid = request.POST['uid']
        uCode = request.POST['userCode']
        results['pid'] = pid
        results['uid'] = uid
        results['userCode'] = uCode
        
        # get the poll belonging to pid
        pd = pollAPI(uid)
        pd.setUserCode(uCode)
        pollJSON = pd.getPollJSON(pid)
        results['poll'] = pollJSON
        return r2r('polldaddy/editpoll.html', results)
    else:
        return httpRedirect('/apitests/pd/')
コード例 #23
0
ファイル: views.py プロジェクト: imosts/flume
def private (request):
    # XXX This should just get username from env.
    user = User.objects.get (id=get_uid ())
    
    interests = user.interests_set.all ()
    similar_users = []
    if len (interests) > 0:
        interests = interests[0]
        for i in interests.interests.split ():
            for similar_user in Interests.objects.filter (interests__icontains=i):
                if similar_user.user.username != user.username:
                    similar_users.append (similar_user.user.username)

    return r2r ('private.html',
                {'myprefix': urlprefix (geturl=True).absolute_uri (),
                 'fbprefix': urlprefix (mode=W5MODE_TRUSTED_PYAPP_FORK,
                                        link_ls=flmo.LabelSet (),
                                        devel='facebook',
                                        geturl=True,
                                        trusted=True).absolute_uri (),
                 'similar_users': similar_users })
コード例 #24
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def home(request):
    if debug:
        print "home"
    user = request.user
    r1 = MongoWorkout.objects.all().order_by('-touched_at')
    #r1 = Workout.private_objects.all().order_by('-created_at')
    #if user.is_authenticated() and user.get_profile().private_wods:
    #    r2 = Workout.objects.filter(user=user).order_by('-created_at')
    #    results = get_paginator(request, r1 | r2)
    #else:
    #    results = get_paginator(request, r1)
    results = get_paginator(request, r1, 20)
    tag_cloud_template = 'tags_home.html'
    title = 'Recent Workouts'
    
    #exes = Exercise.objects.all().order_by('name')
    exes = serializers.serialize("json", Exercise.objects.all().order_by('name'))
    print exes
    show = True
    home = True
    return r2r('index.html', locals())
コード例 #25
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def contactview(request):
    if debug:
        print 'contactview'
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            if debug:
                'valid form'
            subject = "simpleWOD contact: %s" % form.cleaned_data['topic']
            message = "From: %s\n\n%s" % (form.cleaned_data['name'], form.cleaned_data['message'])
            from_email = form.cleaned_data['email']
            try:
                send_mail(subject, message, from_email, ['*****@*****.**'])
            except BadHeaderError:
                    return HttpResponse('Invalid header found.')
            return HttpResponseRedirect('/contact/thankyou/')
    else:        
        form = ContactForm()
        #form = ContactForm(initial={'topic': 'simpleWOD contact form submission' })


    return r2r('contact.html', locals(), context_instance=RequestContext(request))
コード例 #26
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def wod_single(request, wodslug):
    if debug:
        print '- wods single'
    user = request.user
    wod = MongoWorkout.objects.get(slug = wodslug)
    print wod
    print wod.mongo_id
    
    mwod = wod.get()
    print mwod['_id']
    
    print 'res'
    results = MongoResult.private_objects.filter(workout = wod).order_by('-updated_at')
    #results = DB.results.find(wod=ObjectId(mwod['_id']))
    print results
    
    if user.is_authenticated() and user.get_profile().private_wods:
        r2 = MongoResult.objects.filter(workout = wod, user=user).order_by('-updated_at')
        #results = results | r2
    
    results = map(ObjectId, results.values_list('mongo_id', flat=True))
    print results
    #for r in results:
    #    r = ObjectId(r)
    #({j:{$in: [2,4,6]}});
    results = DB.results.find({"_id": { "$in": results }})
    
    print results
    #<pymongo.cursor.Cursor object at 0x102a2fe50>
    rr = results
    #for r in results:
    #    print r['user_id']
    #    rr.append(r)
    #rr = [(r['user_id'],) for r in results.collection]
    print rr
    #prints expected user id
    
    
    return r2r('singlewod.html', {'results': rr, 'mwod': mwod, 'wod': wod, 'request': request})
コード例 #27
0
ファイル: views.py プロジェクト: sdutlinux/pahchina
def pah_login(request):
    """ 网站登录
    根据不同身份用户跳转到不同的页面
    """
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                if user.get_mark('email') is False:
                    request.session['user_email'] = user.email
                    _msg = '''您的邮箱尚未通过验证<a class="btn btn-mini" href="{0}?token=send_email">
                    &nbsp;发送验证邮件</a>'''.format(reverse_lazy("confirm_mail"))
                    messages.info(request, mark_safe(_msg))
                    return HttpResponseRedirect(reverse_lazy('index'))
                login(request, user)
                if user.get_mark("first_login"):
                    messages.success(request, "登录成功,这是您的第一次登录, 请填写必要信息,谢谢支持!")
                    return HttpResponseRedirect(reverse_lazy('first_login'))
                user.count_login_time()  # 修改登录次数
                messages.success(request, '登录成功,欢迎您:{0}'.format(request.user.username))
                redirect_to = request.REQUEST.get('next', False)
                if redirect_to:
                    return HttpResponseRedirect(redirect_to)
                else:
                    if user.is_superuser or user.is_staff:
                        return HttpResponseRedirect(reverse('admin-index'))
                    else:
                        return HttpResponseRedirect(reverse_lazy('profile'))
            else:
                messages.error(request, '用户暂停使用,尚未激活!')
        else:
            messages.error(request, '用户名与密码不匹配!')

    form = AuthenticationForm
    if request.user.is_authenticated(): return HttpResponseRedirect(reverse_lazy("index"))
    return r2r('login.html', locals(), context_instance=RequestContext(request))
コード例 #28
0
ファイル: views.py プロジェクト: sdutlinux/pahchina
def first_login(request):
    """ 用户第一次登录
    """
    # identity_form = forms.IdentityChoiceForm
    region_form = UserUpdateRegionForm
    if request.method == "POST":
        province = request.POST.get("province")
        city = request.POST.get("city")
        area = request.POST.get("area")
        identity = request.POST.get("identity")
        try:
            if province or identity is not None:
                if identity in IDENTITY_LIST:
                    set_user_identity(request.user, identity)
                set_user_region(request.user, "apartment",
                                province, city, area,)
                messages.success(request, "提交信息成功, 欢迎使用!")
                request.user.set_mark('email', False)
                request.user.set_mark('first_login', False)
                return HttpResponseRedirect(reverse_lazy('profile'))
        except (KeyError, IntegrityError):
            messages.warning(request, "请前往个人中心修改地区信息!")
            return HttpResponseRedirect(reverse_lazy('profile'))
    return r2r('first/choices.html', locals(), context_instance=RequestContext(request))
コード例 #29
0
ファイル: views.py プロジェクト: timbroder/simplewod-mongodb
def feeds(request):
    user = request.user
    domain = 'http://%s/' % Site.objects.get_current().domain

    return r2r('feeds.html', locals())
コード例 #30
0
ファイル: views.py プロジェクト: sdutlinux/pahchina
def admin_index(request):
    """ 网站后台首页
    """
    return r2r('admin-index.html', locals(),
               context_instance=RequestContext(request))