def get_types(request, comu): ls = [] lista = Photo.objects.all().filter(comune=comu).distinct('tipologia') for a in lista: ls.append({"comune":a.comune, "foto":a.pk, "sesso":a.sesso, "tipo":a.tipologia}) resp = simplejson(ls) return HttpResponse (resp, "application/json")
def del_following(request): ''' Borra de la lista de de followings de un usuario Parametros en POST userid : el id del usuario a borrar username : el username del usuario a borrar :returns: boolean ''' userid = request.POST.get('id', None) username = request.POST.get('username', None) deleted = geouser.del_following(request, userid=userid, username=username) return HttpResponse(simplejson(deleted), mimetype="application/json")
def add_following(request): ''' Añade a la lista de de followings de un usuario Parametros en POST userid : el id del usuario a seguir username : el username del usuario a seguir :returns: boolean ''' userid = request.POST.get('id', None) username = request.POST.get('username', None) added = geouser.add_following(request, userid=userid, username=username) return HttpResponse(simplejson(added), mimetype="application/json")
def get_followers(request): ''' Devuelve la lista de followers de un usuario Parametros en POST userid : el id del usuario a buscar (opcional) username : el username del usuario a buscar (opcional) page : pagina a mostrar query_id: id de la consulta de pagina :returns: lista de la forma (id, username) ''' page = request.POST.get('page', 1) query_id = request.POST.get('query_id', None) userid = request.POST.get('id', None) username = request.POST.get('username', None) followers = geouser.get_followers(request, userid, username, page, query_id) return HttpResponse(simplejson(followers), mimetype="application/json") # los None se parsean como null
def viewLesson(request, lesson_id): lesson = get_object_or_404(Lesson, key=lesson_id) responses = [] if lesson.recorded_responses.filter(student=User.objects.get(pk=request.user.id)): for q in lesson.questions.all().order_by("q_num"): try: r = Response.objects.get(question=q, student=User.objects.get(pk=request.user.id)) except ObjectDoesNotExist: r = Response(student=User.objects.get(pk=request.user.id), text="", question=q) r.save(set_date=True) except MultipleObjectsReturned: temp = Response.objects.filter(question=q, student=User.objects.get(pk=request.user.id)).order_by( "edit_date" ) for x in temp: if x != temp[temp.count() - 1]: x.delete() else: r = x curr = { "user_id": r.student.__unicode__(), "response": r.text, "last_edit": r.edit_date.__str__(), "q_num": r.question.q_num.__str__(), "comment": r.comment, } responses.append(curr) if request.method == "POST": if request.user not in lesson.respondents.all(): lesson.respondents.add(request.user) responses = simplejson.loads(request.POST["responses"]) for r in responses: changed = False temp = lesson.questions.filter(pk=r["id"]).count() if request.is_ajax() and temp == 0: return HttpResponseForbidden(simplejson({"success": False}), mimetype="application/json") elif temp == 0: return HttpResponseForbidden("Stop screwing with us") if ( Response.objects.filter( student=User.objects.get(pk=request.user.id), question=Question.objects.get(pk=r["id"]) ).count() > 0 ): response = Response.objects.get( student=User.objects.get(pk=request.user.id), question=Question.objects.get(pk=r["id"]) ) if response.text != r["response"]: response.viewed = False response.text = r["response"] changed = True else: response = Response( text=r["response"], student=User.objects.get(pk=request.user.id), question=Question.objects.get(pk=r["id"]), ) changed = True if changed: response.save(set_date=True) lesson.recorded_responses.add(response) if request.is_ajax(): return HttpResponse(simplejson.dumps({"success": True}), mimetype="application/json") messages.success(request, "Responses successfully recorded.") return render_to_response( "stu_response/lesson_view.html", { "lesson": lesson, "questions": lesson.questions.all().order_by("q_num"), "responses": simplejson.dumps(responses), }, context_instance=RequestContext(request), )