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/")
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})
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))
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)
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)
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)
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)
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)