예제 #1
0
def loginUser(request):
    if SM.getUser(request.session):
        return redirect('/dashboard/')
    if request.method == 'GET':
        return render(request, "user_login.jade")
    else:
        SM.login(request.session, request.POST)
        return redirect("/dashboard/")
예제 #2
0
def dashboardMain(request):
    user = SM.getUser(request.session)
    if not user:
        return redirect('/user/login/')


    ms = StudyGroup.objects.filter(creator=user)

    return render(request, "dashboard.jade", {'my_sessions':ms})
예제 #3
0
def userStudyInterestsQuery(request):
    user = SM.getUser(request.session)
    if not user:
        return HttpResponse("[]")

    else:
        userSIList = []
        for SI in user.interests.all():
            userSIList.append({"id": SI.id, "name":SI.name})
        return HttpResponse(json.dumps(userSIList))
예제 #4
0
def userInterestChannelsQuery(request):
    user = SM.getUser(request.session)
    if not user:
        return HttpResponse("[]")

    else:
        userCHList = []
        try:
            for CH in user.channels.all():
                if CH in StudyInterest.objects.get(id=request.GET.get("interest")).channels.all():
                    userCHList.append({"id": CH.id, "name": CH.name})
            return HttpResponse(json.dumps(userCHList))
        except Exception, e:
            return HttpResponse("Error. %s"%e)
예제 #5
0
def userStudyInterestsUpdate(request):
    print json.dumps(request.POST)
    try:
        user = SM.getUser(request.session)
        if not user:
            return HttpResponse("Bad request.")

        else:
            if "removal" in request.POST and request.POST.get("removal") != "":
                for remove in request.POST.get("removal").split(","):
                    user.removeStudyInterest(remove)
            if "addition" in request.POST and request.POST.get("addition") != "":
                for add in request.POST.get("addition").split(","):
                    user.addStudyInterest(add)
    except Exception, e:
        return HttpResponse("Error. %s"%e)
예제 #6
0
def userInterestChannelsUpdate(request):
    print json.dumps(request.POST)
    try:
        user = SM.getUser(request.session)
        if not user:
            return HttpResponse("Bad request.")

        if "addition" in request.POST and request.POST.get("addition") != "":
            for add in request.POST.get("addition").split(","):
                user.addInterestChannel(add, request.POST.get("interest"))
        if "removal" in request.POST and request.POST.get("removal") != "":
            for remove in request.POST.get("removal"):
                user.removeInterestChannel(remove)
        return HttpResponse("OK")
    except Exception, e:
        return HttpResponse("Error. %s"%e)
예제 #7
0
def get_study_sessions(request):
    if not SM.getUser(request.session):
        return redirect('/user/login/')
    from datetime import datetime
    from django.utils import timezone
    try:
        here_id = request.GET.get('here_id')
        place = Location.objects.get(here_id=here_id)
        sgs = StudyGroup.objects.filter(location=place).exclude(datetime__lt=timezone.now())
        resp = []

        for sg in sgs:
            resp.append({'name':sg.name, 'datetime': datetime.strftime(sg.datetime,'%y/%m/%d %H:%M'), 'interest': sg.targetInterest.name, 'host': sg.creator.username})

        print resp
        return HttpResponse(json.dumps(resp),content_type="application/json")

    except ObjectDoesNotExist:
        pass
    except Exception, e:
        import logging
        logging.exception(e)
예제 #8
0
def create_study_session(request):
    from studybuddy.forms import NewStuddyGroupForm

    user = SM.getUser(request.session)
    if not user:
        print "no user"
        return HttpResponse(json.dumps({'status':'error','reason':'invalid user'}),content_type="application/json")

    form = NewStuddyGroupForm(request.POST)
    if form.is_valid():
        # continue adding
        print "form valid"
        try:
            var = form.cleaned_data
            print var
            loc = Location.create_or_get(var['here_id'],var['place_name'],(var['longitude'],var['latitude']))

            sg = StudyGroup(name=var['name'],
                            maxMembers=var['maxMembers'],
                            description=var['description'],
                            creator=user,
                            location=loc,
                            datetime=var['datetime'],
                            targetInterest=StudyInterest.objects.get(id=var['targetInterest']))

            sg.save()

            '''send_sms.delay()

            study_interest = StudyInterest.objects.get(id=var['targetInterest'])
            for c in InterestChannel.getByNames(var['targetChannels']):
                print "weh"
                #send event!
                d = {
                    'type': 'NEW_GROUP',
                    'group_name': var['name'],
                    'interest_name': study_interest.name,
                    'channel_name': c.name,
                    'datetime': datetime.strftime(sg.datetime, '%y/%m/%d %H:%M')
                }

                redis_server.publish("interest-%s.channel-%s"%(d['interest_name'], d['channel_name']), d)'''
            study_interest = StudyInterest.objects.get(id=var['targetInterest'])
            for c in InterestChannel.getByNames(var['targetChannels']):
                d = {
                    'type': 'NEW_GROUP',
                    'group_name': var['name'],
                    'interest_name': study_interest.name,
                    'channel_name': c.name,
                    'datetime': datetime.strftime(sg.datetime, '%y/%m/%d %H:%M')
                }
                new_group(**d)

            for channel in var['targetChannels'].split(' '):
                tc = InterestChannel.create_or_get(channel)
                sg.targetChannels.add(tc)

            print "success"
            return HttpResponse(json.dumps({'status':'success'}),content_type="application/json")
        except Exception, e:
            import logging
            logging.exception(e)