Exemple #1
0
    def wrap(request, *args, **kwargs):
        expiration_time = 5 * 60
        if request.user.is_authenticated():
            request.temp_user = request.user
            return function(request, *args, **kwargs)

        User = get_user_model()
        rfid = request.POST.get('rfid', None)
        user = get_or_none(User, rfid__number=rfid or 'notavalidrfid')
        email = request.POST.get("email", None) or "notavaildemail"
        if rfid and rfid == "0000000000" and settings.DEBUG:
            user = User.objects.get(pk=1)
        if not user and email and 'password' in request.POST:
            user = User.objects.get_from_anything(email)
            if user and not user.check_password(request.POST['password']):
                return JsonResponse(
                    {
                        'errors': {
                            'non_field_error':
                            'Username and password do not match, please try again'
                        }
                    },
                    status=401)
        if user:
            request.temp_user = user
            return function(request, *args, **kwargs)
        if rfid:
            return JsonResponse({'next': "new-rfid", 'new_rfid': rfid})
        return JsonResponse(
            {
                'errors': {
                    'non_field_error': 'Unable to find user. Contact the staff'
                }
            },
            status=401)
Exemple #2
0
def document_json(request, document_pk):
    #! TODO do we want to allow annonymous documents?
    document = get_object_or_404(Document, pk=document_pk)
    signature = None
    if document.editable:
        signature = get_or_none(Signature,
                                document_id=document_pk,
                                user=request.temp_user)
    form = SignatureForm(request.POST or None,
                         request.FILES or None,
                         document=document,
                         instance=signature)
    if form.is_valid():
        signature = form.save(commit=False)
        if request.temp_user.is_authenticated():
            signature.user = request.temp_user
        signature.save()
        m = "%s signed by %s" % (document, signature.user)
        document_json = document.get_json_for_user(request.temp_user)
        #signature.delete() #! TODO this is only to help debugging!
        return JsonResponse({
            "messages": [{
                "level": 'success',
                'body': m
            }],
            'document': document_json
        })
    out = "Please correct the following error(s):"
    for i in form.errors.items():
        out += "<br/>%s: %s" % i
    return JsonResponse({'errors': {'non_field_error': out}})
Exemple #3
0
def join_us(request):
  values = {
    'groups': Group.objects.all(),
    'flatpage':lambda:FlatPage.objects.get(url='/join-us/'),
    'canceled_subscription': get_or_none(Subscription,pk=request.GET.get("canceled",0)),
    'now': datetime.datetime.now()
    }
  return TemplateResponse(request,"membership/memberships.html",values)
Exemple #4
0
def join_us(request):
  values = {
    'groups': Group.objects.all(),
    'flatpage':lambda:FlatPage.objects.get(url='/join-us/'),
    'canceled_subscription': get_or_none(Subscription,pk=request.GET.get("canceled",0)),
    'now': datetime.datetime.now()
    }
  return TemplateResponse(request,"membership/memberships.html",values)
Exemple #5
0
def index(request):
  d_ids = getattr(settings,"REQUIRED_DOCUMENT_IDS",[])
  documents = Document.objects.filter(id__in=d_ids)
  values = {
    'documents_signatures': [(d,get_or_none(Signature,document_id=d.id,user=request.user)) for d in documents],
    'next': request.path,
  }
  return TemplateResponse(request,"redtape/index.html",values)
Exemple #6
0
def get_subscription(params,sender):
  subscr_id = params.get('subscr_id',None) or params.get('recurring_payment_id',None)
  if not subscr_id:
    mail_admins("Bad IPN","no subscr_id in IPN #%s"%sender.pk)
    return
  subscription = get_or_none(Subscription,subscr_id=subscr_id)
  if not subscription:
    return
  return subscription
Exemple #7
0
def get_subscription(params, sender):
    subscr_id = params.get('subscr_id', None) or params.get(
        'recurring_payment_id', None)
    if not subscr_id:
        mail_admins("Bad IPN", "no subscr_id in IPN #%s" % sender.pk)
        return
    subscription = get_or_none(Subscription, subscr_id=subscr_id)
    if not subscription:
        return
    return subscription
Exemple #8
0
def index(request):
    d_ids = getattr(settings, "REQUIRED_DOCUMENT_IDS", [])
    documents = Document.objects.filter(id__in=d_ids)
    values = {
        'documents_signatures':
        [(d, get_or_none(Signature, document_id=d.id, user=request.user))
         for d in documents],
        'next':
        request.path,
    }
    return TemplateResponse(request, "redtape/index.html", values)
Exemple #9
0
def detail(request,pk,slug):
  course = get_object_or_404(Course,pk=pk)
  enrollment = None
  follow = None
  if request.user.is_authenticated():
    _e = Enrollment.objects.filter(session__course=course,user=request.user)
    enrollment = (_e or [None])[0]
    follow = get_or_none(Follow,user=request.user,content_type=get_contenttype(course),object_id=course.id)
  kwargs = dict(active=True,subjects__in=course.subjects.all())
  related_courses = Course.objects.filter(**kwargs).exclude(id=course.id)
  values = {
    'course': course,
    'enrollment': enrollment,
    'related_courses': related_courses,
    'follow': follow,
  }
  return TemplateResponse(request,"course/detail.html",values)
Exemple #10
0
def document_json(request,document_pk):
  #! TODO do we want to allow annonymous documents?
  document = get_object_or_404(Document,pk=document_pk)
  signature = None
  if document.editable:
    signature = get_or_none(Signature,document_id=document_pk,user=request.temp_user)
  form = SignatureForm(request.POST or None,request.FILES or None,document=document,instance=signature)
  if form.is_valid():
    signature = form.save(commit=False)
    if request.temp_user.is_authenticated():
      signature.user = request.temp_user
    signature.save()
    m = "%s signed by %s"%(document,signature.user)
    document_json = document.get_json_for_user(request.temp_user)
    #signature.delete() #! TODO this is only to help debugging!
    return JsonResponse({"messages":[{"level": 'success','body': m}], 'document': document_json})
  out = "Please correct the following error(s):"
  for i in form.errors.items():
    out += "<br/>%s: %s"%i
  return JsonResponse({'errors': {'non_field_error': out}})
Exemple #11
0
def document_detail(request,document_pk,slug=None): #ze slug does notzing!
  document = get_object_or_404(Document,pk=document_pk)
  if document.login_required and not request.user.is_authenticated():
    return login_required(document_detail)(request,document_pk)
  signature = None
  if request.user.is_authenticated() and document.editable:
    signature = get_or_none(Signature,document_id=document_pk,user=request.user)
  form = SignatureForm(request.POST or None,request.FILES or None,document=document,instance=signature)
  if form.is_valid():
    signature = form.save(commit=False)
    if request.user.is_authenticated():
      signature.user = request.user
    signature.save()
    messages.success(request,"%s signed by %s"%(document,signature.user))
    return HttpResponseRedirect(request.POST.get('next',""))
  values = {
    'form': form,
    'document': document,
    'signature': signature
  }
  return TemplateResponse(request,"redtape/document.html",values)
Exemple #12
0
def document_detail(request, document_pk, slug=None):  #ze slug does notzing!
    document = get_object_or_404(Document, pk=document_pk)
    if document.login_required and not request.user.is_authenticated():
        return login_required(document_detail)(request, document_pk)
    signature = None
    if request.user.is_authenticated() and document.editable:
        signature = get_or_none(Signature,
                                document_id=document_pk,
                                user=request.user)
    form = SignatureForm(request.POST or None,
                         request.FILES or None,
                         document=document,
                         instance=signature)
    if form.is_valid():
        signature = form.save(commit=False)
        if request.user.is_authenticated():
            signature.user = request.user
        signature.save()
        messages.success(request,
                         "%s signed by %s" % (document, signature.user))
        return HttpResponseRedirect(request.POST.get('next', ""))
    values = {'form': form, 'document': document, 'signature': signature}
    return TemplateResponse(request, "redtape/document.html", values)
Exemple #13
0
  def wrap(request,*args,**kwargs):
    expiration_time = 5*60
    if request.user.is_authenticated():
      request.temp_user = request.user
      return function(request,*args,**kwargs)

    User = get_user_model()
    rfid = request.POST.get('rfid',None)
    user = get_or_none(User,rfid__number=rfid or 'notavalidrfid')
    email = request.POST.get("email",None) or "notavaildemail"
    if rfid and rfid == "0000000000" and settings.DEBUG:
      user = User.objects.get(pk=1)
    if not user and email and 'password' in request.POST:
      user = User.objects.get_from_anything(email)
      if user and not user.check_password(request.POST['password']):
        return JsonResponse({'errors': {'non_field_error': 'Username and password do not match, please try again'}},
                            status=401)
    if user:
      request.temp_user = user
      return function(request,*args,**kwargs)
    if rfid:
      return JsonResponse({'next': "new-rfid", 'new_rfid': rfid})
    return JsonResponse({'errors': {'non_field_error': 'Unable to find user. Contact the staff'}},
                        status=401)