Example #1
0
def pin_upload( request ):
	response = Epoxy( request )
	d = dt.datetime.now()

	form = UploadPinForm( request.REQUEST )
	if not form.is_valid():
		return response.throw_error(error=form.errors, code=API_EXCEPTION_FORMERRORS)

	if len(form.cleaned_data['page_slug']) > 0:
		# attacch new pin to a selected page (both languages)
		response.add('page_slug',form.cleaned_data['page_slug'])
			
		try:
			page_en = Page.objects.get( slug=form.cleaned_data['page_slug'],language='EN')
			page_fr = Page.objects.get( slug=form.cleaned_data['page_slug'],language='FR')
		except Page.DoesNotExist:
			return response.throw_error( error=_("selected page does not exists"), code=API_EXCEPTION_FORMERRORS).json()

		response.add('page', [ page_en.json(), page_fr.json() ] )

	pin_path = response.add('path', "pins/%s-%s" % ( d.year, ( d.month if d.month >10 else "0%s" % d.month ) ) )
	absolute_pin_path = os.path.join( settings.MEDIA_ROOT, pin_path )

	try:
		if not os.path.exists( absolute_pin_path ): 
			os.makedirs( absolute_pin_path ) # throw an OS ERROR if exists... OR if it is not writable!
	except OSError, e:
		return response.throw_error( error="%s" % e, code=API_EXCEPTION_OSERROR ).json()
Example #2
0
def test( request ):
	response = Epoxy( request )
	response.add( 'full_path', request.get_host()  )
	
	full_url =  "%s://%s%s"% ( 'https' if request.is_secure()  else 'http', request.get_host(), reverse('outside.views.confirm', args=( "dsdsdsds", 12 ) ) )
	response.add( 'full_url',  full_url  )
	
	

	return response.json()
Example #3
0
def test(request):
    response = Epoxy(request)
    response.add('full_path', request.get_host())

    full_url = "%s://%s%s" % (
        'https' if request.is_secure() else 'http', request.get_host(),
        reverse('outside.views.confirm', args=("dsdsdsds", 12)))
    response.add('full_url', full_url)

    return response.json()
Example #4
0
def auth_login(request):

    response = Epoxy(request)

    form = LoginForm(request.POST)
    try:
        if 'next' not in request.session:
            request.session['next'] = request.REQUEST['next']
    except:
        pass

    if request.method == 'POST':

        if form.is_valid():
            user = authenticate(username=form.cleaned_data['username'],
                                password=form.cleaned_data['password'])
            if user is not None:
                if user.is_active:
                    login(request, user)

                    try:
                        subscriber = Subscriber.objects.get(
                            user=request.user.id)
                    except Subscriber.DoesNotExist:
                        return redirect(
                            reverse('outside.views.create_profile'))

                    next_url = request.session['next']

                    del request.session['next']

                    response.add('next', next_url)

                else:
                    return response.throw_error(
                        _("user has been disabled"),
                        code=API_EXCEPTION_FORMERRORS).json()
            else:
                return response.throw_error(
                    error={
                        'username': '',
                        'password': ''
                    },
                    code=API_EXCEPTION_FORMERRORS).json()

                return response.throw_error(
                    error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
        else:
            """login_message['error'] = _("invalid credentials")
			login_message['invalid_fields'] = form.errors"""
            #return HttpResponse('TEST')
            return response.throw_error(error=form.errors,
                                        code=API_EXCEPTION_FORMERRORS).json()

        return response.json()
Example #5
0
def auth_login( request ):
	
	response = Epoxy( request )

	form = LoginForm( request.POST )
	try:
		if 'next' not in request.session:
			request.session['next'] = request.REQUEST['next']
	except:
		pass
	
	
	if request.method == 'POST': 

		if form.is_valid():
			user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password'])
			if user is not None:
				if user.is_active:
					login(request, user)

					try:
						subscriber = Subscriber.objects.get(user=request.user.id)
					except Subscriber.DoesNotExist:
						return redirect( reverse('outside.views.create_profile') )
					
					next_url = request.session['next']
					
					del request.session['next']
					
					response.add( 'next', next_url  )
	
				else:
					return response.throw_error( _("user has been disabled"), code=API_EXCEPTION_FORMERRORS).json()
			else:
				return response.throw_error( 
									error={'username':'', 
										'password':''}, 
									code=API_EXCEPTION_FORMERRORS).json()
				
				return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
		else:
			"""login_message['error'] = _("invalid credentials")
			login_message['invalid_fields'] = form.errors"""
			#return HttpResponse('TEST')
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
	
		
		
		return response.json()
Example #6
0
def pages(request):
	# logger.info("Welcome to GLUEBOX api")
	response = Epoxy( request )
	if response.method =='POST':
		form = AddPageForm( request.REQUEST )
		if not form.is_valid():
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
		try:
			p_en = Page( title=form.cleaned_data['title_en'], language='EN', slug=form.cleaned_data['slug'])
			p_en.save()

			p_fr = Page( title=form.cleaned_data['title_fr'], language='FR', slug=form.cleaned_data['slug'])
			p_fr.save() 
		except IntegrityError, e:
			return response.throw_error( error="%s" % e, code=API_EXCEPTION_INTEGRITY).json()

		response.add('object',[ p_en.json(), p_fr.json() ])
Example #7
0
def pin_upload(request):
    response = Epoxy(request)
    d = dt.datetime.now()

    form = UploadPinForm(request.REQUEST)
    if not form.is_valid():
        return response.throw_error(error=form.errors,
                                    code=API_EXCEPTION_FORMERRORS)

    if len(form.cleaned_data['page_slug']) > 0:
        # attacch new pin to a selected page (both languages)
        response.add('page_slug', form.cleaned_data['page_slug'])

        try:
            page_en = Page.objects.get(slug=form.cleaned_data['page_slug'],
                                       language='EN')
            page_fr = Page.objects.get(slug=form.cleaned_data['page_slug'],
                                       language='FR')
        except Page.DoesNotExist:
            return response.throw_error(
                error=_("selected page does not exists"),
                code=API_EXCEPTION_FORMERRORS).json()

        response.add('page', [page_en.json(), page_fr.json()])

    pin_path = response.add(
        'path',
        "pins/%s-%s" % (d.year,
                        (d.month if d.month > 10 else "0%s" % d.month)))
    absolute_pin_path = os.path.join(settings.MEDIA_ROOT, pin_path)

    try:
        if not os.path.exists(absolute_pin_path):
            os.makedirs(
                absolute_pin_path
            )  # throw an OS ERROR if exists... OR if it is not writable!
    except OSError, e:
        return response.throw_error(error="%s" % e,
                                    code=API_EXCEPTION_OSERROR).json()
Example #8
0
def pages(request):
    # logger.info("Welcome to GLUEBOX api")
    response = Epoxy(request)
    if response.method == 'POST':
        form = AddPageForm(request.REQUEST)
        if not form.is_valid():
            return response.throw_error(error=form.errors,
                                        code=API_EXCEPTION_FORMERRORS).json()
        try:
            p_en = Page(title=form.cleaned_data['title_en'],
                        language='EN',
                        slug=form.cleaned_data['slug'])
            p_en.save()

            p_fr = Page(title=form.cleaned_data['title_fr'],
                        language='FR',
                        slug=form.cleaned_data['slug'])
            p_fr.save()
        except IntegrityError, e:
            return response.throw_error(error="%s" % e,
                                        code=API_EXCEPTION_INTEGRITY).json()

        response.add('object', [p_en.json(), p_fr.json()])
Example #9
0
def pins( request ):
	response = Epoxy( request )
	if response.method =='POST':
		form = AddPinForm( request.REQUEST )
		if not form.is_valid():
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()

		if len(form.cleaned_data['page_slug']) > 0:
			# attacch new pin to a selected page (both languages)
			response.add('page_slug',form.cleaned_data['page_slug'])
			
			try:
				page_en = Page.objects.get( slug=form.cleaned_data['page_slug'],language='EN')
				page_fr = Page.objects.get( slug=form.cleaned_data['page_slug'],language='FR')
			except Page.DoesNotExist:
				return response.throw_error( error=_("selected page does not exists"), code=API_EXCEPTION_FORMERRORS).json()

			response.add('page', [ page_en.json(), page_fr.json() ] )

		if len(form.cleaned_data['parent_pin_slug']) > 0:
			# attacch new pin to a selected pin (pin children, usually displayed on the right side, both languages)
			response.add('parent_pin_slug',form.cleaned_data['parent_pin_slug'])
			
			try:
				pin_en = Pin.objects.get( slug=form.cleaned_data['parent_pin_slug'],language='EN')
				pin_fr = Pin.objects.get( slug=form.cleaned_data['parent_pin_slug'],language='FR')
			except Pin.DoesNotExist, e:
				return response.throw_error( error=_("selected pin does not exists. Exception: %s" % e), code=API_EXCEPTION_FORMERRORS).json()

			response.add('pin', [ pin_en.json(), pin_fr.json() ] )

		#return response.queryset( Pin.objects.filter() ).json()

		try:
			p_en = Pin( title=form.cleaned_data['title_en'], language='EN', slug=form.cleaned_data['slug'])
			p_fr = Pin( title=form.cleaned_data['title_fr'], language='FR', slug=form.cleaned_data['slug'])
			
			if len(form.cleaned_data['parent_pin_slug']) > 0:
				p_en.parent = pin_en
				p_fr.parent = pin_fr

			
			p_en.save()
			p_fr.save() 
		except IntegrityError, e:
			return response.throw_error( error={'slug':"Exception %s" % e}, code=API_EXCEPTION_INTEGRITY).json()
Example #10
0
def pins(request):
    response = Epoxy(request)
    if response.method == 'POST':
        form = AddPinForm(request.REQUEST)
        if not form.is_valid():
            return response.throw_error(error=form.errors,
                                        code=API_EXCEPTION_FORMERRORS).json()

        if len(form.cleaned_data['page_slug']) > 0:
            # attacch new pin to a selected page (both languages)
            response.add('page_slug', form.cleaned_data['page_slug'])

            try:
                page_en = Page.objects.get(slug=form.cleaned_data['page_slug'],
                                           language='EN')
                page_fr = Page.objects.get(slug=form.cleaned_data['page_slug'],
                                           language='FR')
            except Page.DoesNotExist:
                return response.throw_error(
                    error=_("selected page does not exists"),
                    code=API_EXCEPTION_FORMERRORS).json()

            response.add('page', [page_en.json(), page_fr.json()])

        if len(form.cleaned_data['parent_pin_slug']) > 0:
            # attacch new pin to a selected pin (pin children, usually displayed on the right side, both languages)
            response.add('parent_pin_slug',
                         form.cleaned_data['parent_pin_slug'])

            try:
                pin_en = Pin.objects.get(
                    slug=form.cleaned_data['parent_pin_slug'], language='EN')
                pin_fr = Pin.objects.get(
                    slug=form.cleaned_data['parent_pin_slug'], language='FR')
            except Pin.DoesNotExist, e:
                return response.throw_error(
                    error=_("selected pin does not exists. Exception: %s" % e),
                    code=API_EXCEPTION_FORMERRORS).json()

            response.add('pin', [pin_en.json(), pin_fr.json()])

        #return response.queryset( Pin.objects.filter() ).json()

        try:
            p_en = Pin(title=form.cleaned_data['title_en'],
                       language='EN',
                       slug=form.cleaned_data['slug'])
            p_fr = Pin(title=form.cleaned_data['title_fr'],
                       language='FR',
                       slug=form.cleaned_data['slug'])

            if len(form.cleaned_data['parent_pin_slug']) > 0:
                p_en.parent = pin_en
                p_fr.parent = pin_fr

            p_en.save()
            p_fr.save()
        except IntegrityError, e:
            return response.throw_error(error={
                'slug': "Exception %s" % e
            },
                                        code=API_EXCEPTION_INTEGRITY).json()