예제 #1
0
def change_password(request):
    response = Epoxy(request)
    if request.method == 'POST':
        form = ChangePasswordForm(request.REQUEST)

        if form.is_valid():
            uPass1 = form.cleaned_data['password1']
            uPass2 = form.cleaned_data['password2']

            if uPass1 == uPass2:
                user = User.objects.get(username=form.cleaned_data['username'])
                user.set_password(uPass1)
                user.save()
            else:
                return response.throw_error(
                    error={
                        'password1': 'the 2 pwd must be the same',
                        'password2': 'the 2 pwd must be the same'
                    },
                    code=API_EXCEPTION_FORMERRORS).json()
        else:
            return response.throw_error(error=form.errors,
                                        code=API_EXCEPTION_FORMERRORS).json()

    return response.json()
예제 #2
0
def enquiries( request ):
	response = Epoxy( request )
	if response.method =='POST':
		form = AddEnquiryForm( request.REQUEST )
		if not form.is_valid():
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()


		try:
			enquete = Enquete.objects.get(id=form.cleaned_data['enquete'])

			enquiry_en = Enquiry(
				title=form.cleaned_data['title_en'], language='EN', slug=form.cleaned_data['slug'], enquete = enquete
			)

			enquiry_fr = Enquiry(
				title=form.cleaned_data['title_fr'], language='FR', slug=form.cleaned_data['slug'], enquete = enquete
			)

			enquiry_en.save()
			enquiry_fr.save()

		#try:
			#e_en = Page( title=form.cleaned_data['title_en'], language='EN', slug=form.cleaned_data['slug'])
			#e_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()
예제 #3
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()
예제 #4
0
def enquiries(request):
    response = Epoxy(request)
    if response.method == 'POST':
        form = AddEnquiryForm(request.REQUEST)
        if not form.is_valid():
            return response.throw_error(error=form.errors,
                                        code=API_EXCEPTION_FORMERRORS).json()

        try:
            enquete = Enquete.objects.get(id=form.cleaned_data['enquete'])

            enquiry_en = Enquiry(title=form.cleaned_data['title_en'],
                                 language='EN',
                                 slug=form.cleaned_data['slug'],
                                 enquete=enquete)

            enquiry_fr = Enquiry(title=form.cleaned_data['title_fr'],
                                 language='FR',
                                 slug=form.cleaned_data['slug'],
                                 enquete=enquete)

            enquiry_en.save()
            enquiry_fr.save()

        #try:
        #e_en = Page( title=form.cleaned_data['title_en'], language='EN', slug=form.cleaned_data['slug'])
        #e_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()
예제 #5
0
파일: api.py 프로젝트: danieleguido/gluebox
def subscribers(request):
	# logger.info("Welcome to GLUEBOX api")
	response = Epoxy( request )
	if response.method=="POST":

		form = SubscriberForm( request.REQUEST )
		
		if not form.is_valid():
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
		
		try:
			s = Subscriber(
				first_name = form.cleaned_data['first_name'],
				last_name = form.cleaned_data['last_name'],
				email = form.cleaned_data['email'],
				affiliation = form.cleaned_data['affiliation'],
				accepted_terms = form.cleaned_data['accepted_terms'],
				description = form.cleaned_data['description'])
			s.save()

		except IntegrityError, e:
			try:
				s = Subscriber.objects.get( email=form.cleaned_data['email']  )

			except Subscriber.DoesNotExist, e:
				return response.throw_error( error="%s" % e, code=API_EXCEPTION_INTEGRITY).json()	
예제 #6
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()
예제 #7
0
파일: api.py 프로젝트: danieleguido/gluebox
def login(request):
	logout(request)
	response = Epoxy(request)
	
	form = LoginForm( request.POST )
	if form.is_valid():
		user = authenticate(username=request.POST['username'], password=request.POST['password'])
	else:
		return response.throw_error(error=form.errors, code=API_EXCEPTION_FORMERRORS ).json()
	
	if user is None:
		return response.throw_error(error="access denied" ).json()
	
	return response.json()
예제 #8
0
파일: api.py 프로젝트: Ezekiah/reanalyse
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()
예제 #9
0
def publish_pin( request, pin_id ):
	response = Epoxy( request )
	new_status = request.POST.get("new_status")

	try:
		if new_status in dict(Pin.PIN_STATUS_CHOICES):
			p=Pin.objects.get( id=pin_id )
			p.status=new_status
			p.save()
			return response.json()
		else:
			return response.throw_error( error="status %s incorrect" % new_status).json()

	except Pin.DoesNotExist, e:
		return response.throw_error( error="%s" % e, code=API_EXCEPTION_DOESNOTEXIST).json()
예제 #10
0
def subscribers(request):
    # logger.info("Welcome to GLUEBOX api")
    response = Epoxy(request)

    if response.method == "POST":
        form = SubscriberForm(request.REQUEST)

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

        else:

            if (form.cleaned_data['action'] == 'EDIT'):

                #GET subscriber id
                update = Subscriber.objects.filter(
                    user=request.user.id).update(
                        first_name=form.cleaned_data['first_name'],
                        last_name=form.cleaned_data['last_name'],
                        email=form.cleaned_data['email'],
                        affiliation=form.cleaned_data['affiliation'],
                        status=form.cleaned_data['status'],
                        accepted_terms=form.cleaned_data['accepted_terms'],
                        description=form.cleaned_data['description'])

            elif (form.cleaned_data['action'] == 'ADD'):
                contacts(form)

    return response.queryset(Subscriber.objects.filter()).json()
예제 #11
0
파일: api.py 프로젝트: Ezekiah/reanalyse
def subscribers(request):
	# logger.info("Welcome to GLUEBOX api")
	response = Epoxy( request )
	
	if response.method=="POST":
		form = SubscriberForm( request.REQUEST )
			
		if not form.is_valid():
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
			
		else:
	
			
			if( form.cleaned_data['action'] == 'EDIT'):
				
			
				#GET subscriber id
				update = Subscriber.objects.filter(user=request.user.id).update(
													first_name = form.cleaned_data['first_name'],
													last_name = form.cleaned_data['last_name'],
													email = form.cleaned_data['email'],
													affiliation = form.cleaned_data['affiliation'],
													status = form.cleaned_data['status'],
													accepted_terms = form.cleaned_data['accepted_terms'],
													description = form.cleaned_data['description'])
				
				
			
			elif( form.cleaned_data['action'] == 'ADD'):
				contacts( form )
																						
			

	return response.queryset( Subscriber.objects.filter() ).json()
예제 #12
0
def pin( request, pin_id ):
	# @todo: check pin permissions
	response = Epoxy( request )
	if response.method == 'POST':
		form = EditPinForm( request.REQUEST )
		if form.is_valid():
			try:
				pin = Pin.objects.get( id=pin_id )
				pin.title = form.cleaned_data['title']
				pin.abstract = form.cleaned_data['abstract']
				pin.content = form.cleaned_data['content']
				pin.save()
			except Pin.DoesNotExist, e:
				return response.throw_error( error="%s" % e, code=API_EXCEPTION_DOESNOTEXIST).json()
		else:
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
예제 #13
0
def reinitialize_password(request):

    response = Epoxy(request)
    if request.method == 'POST':
        form = ReinitializePasswordForm(request.REQUEST)

        if form.is_valid():

            try:

                #user = User.objects.get(username=form.cleaned_data['username'], email__iexact=form.cleaned_data['email'])
                user = User.objects.get(
                    email__iexact=form.cleaned_data['email'])

            except MultipleObjectsReturned, e:

                user = User.objects.filter(
                    email__iexact=form.cleaned_data['email'])
                user = user[0]

            except User.DoesNotExist, e:
                return response.throw_error(
                    error=_('This user does not exist in our database'),
                    code=API_EXCEPTION_DOESNOTEXIST).json()

            subscriber = get_object_or_404(Subscriber, user__id=user.id)
            send_confirmation_mail(subscriber,
                                   request,
                                   action='reinitialize_password')
예제 #14
0
파일: api.py 프로젝트: Ezekiah/reanalyse
def reinitialize_password(request):
	
	response = Epoxy( request )
	if request.method == 'POST':
		form = ReinitializePasswordForm( request.REQUEST )
		
		if form.is_valid():
			
			try:
			
				#user = User.objects.get(username=form.cleaned_data['username'], email__iexact=form.cleaned_data['email'])
				user = User.objects.get(email__iexact=form.cleaned_data['email'])
				
			except  MultipleObjectsReturned, e:
				
				user = User.objects.filter(email__iexact=form.cleaned_data['email'])
				user = user[0]
				
			except User.DoesNotExist, e :
				return response.throw_error( error=_('This user does not exist in our database'), code=API_EXCEPTION_DOESNOTEXIST).json()
				
			
				
			subscriber = get_object_or_404( Subscriber, user__id=user.id )
			send_confirmation_mail(subscriber, request, action='reinitialize_password')
예제 #15
0
def publish_pin(request, pin_id):
    response = Epoxy(request)
    new_status = request.POST.get("new_status")

    try:
        if new_status in dict(Pin.PIN_STATUS_CHOICES):
            p = Pin.objects.get(id=pin_id)
            p.status = new_status
            p.save()
            return response.json()
        else:
            return response.throw_error(error="status %s incorrect" %
                                        new_status).json()

    except Pin.DoesNotExist, e:
        return response.throw_error(error="%s" % e,
                                    code=API_EXCEPTION_DOESNOTEXIST).json()
예제 #16
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() ])
예제 #17
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()
예제 #18
0
def pin(request, pin_id):
    # @todo: check pin permissions
    response = Epoxy(request)
    if response.method == 'POST':
        form = EditPinForm(request.REQUEST)
        if form.is_valid():
            try:
                pin = Pin.objects.get(id=pin_id)
                pin.title = form.cleaned_data['title']
                pin.abstract = form.cleaned_data['abstract']
                pin.content = form.cleaned_data['content']
                pin.save()
            except Pin.DoesNotExist, e:
                return response.throw_error(
                    error="%s" % e, code=API_EXCEPTION_DOESNOTEXIST).json()
        else:
            return response.throw_error(error=form.errors,
                                        code=API_EXCEPTION_FORMERRORS).json()
예제 #19
0
def enquete_data( request, enquete_id ):
	data = {}
	return render_to_response('outside/enquete_data.json', RequestContext(request, data ) )
	
	response = Epoxy( request )
	import random
	try:
		textes = Enquete.objects.get(id=enquete_id).texte_set
	except Enquete.DoesNotExist, e:
		return response.throw_error(error="%s" % e, code=API_EXCEPTION_DOESNOTEXIST).json()
예제 #20
0
파일: api.py 프로젝트: Ezekiah/reanalyse
def change_password(request):
	response = Epoxy( request )
	if request.method == 'POST':
		form = ChangePasswordForm( request.REQUEST )
		
		if form.is_valid():
			uPass1 = form.cleaned_data['password1']
			uPass2 = form.cleaned_data['password2']
			
			if uPass1 == uPass2:
				user = User.objects.get(username=form.cleaned_data['username'])
				user.set_password(uPass1)
				user.save()
			else:
				return response.throw_error( error={'password1':'the 2 pwd must be the same', 'password2':'the 2 pwd must be the same'}, code=API_EXCEPTION_FORMERRORS).json()
		else:
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
				
	return response.json()
예제 #21
0
def enquiry_upload_pin( request, enquiry_id ):
	response = Epoxy( request )
	d = datetime.now()
	try:
		enquiry = Enquiry.objects.get(id=enquiry_id)

		enquiry_en = Enquiry.objects.get( language="EN", slug=enquiry.slug )
		enquiry_fr = Enquiry.objects.get( language="FR", slug=enquiry.slug )
	except Enquiry.DoesNotExist, e:
		return response.throw_error( error="%s" % e, code=API_EXCEPTION_DOESNOTEXIST ).json()
예제 #22
0
파일: api.py 프로젝트: Ezekiah/reanalyse
def enquiry_pins( request, enquiry_slug ):

	response = Epoxy( request )

	# get both language enquiry objects
	try:
		enquiry_en = Enquiry.objects.get( slug=enquiry_slug,language='EN')
		enquiry_fr = Enquiry.objects.get( slug=enquiry_slug,language='FR')
	except Page.DoesNotExist, e:
		return response.throw_error( error="%s" % e, code=API_EXCEPTION_DOESNOTEXIST ).json()
예제 #23
0
def enquiry_pins(request, enquiry_slug):

    response = Epoxy(request)

    # get both language enquiry objects
    try:
        enquiry_en = Enquiry.objects.get(slug=enquiry_slug, language='EN')
        enquiry_fr = Enquiry.objects.get(slug=enquiry_slug, language='FR')
    except Page.DoesNotExist, e:
        return response.throw_error(error="%s" % e,
                                    code=API_EXCEPTION_DOESNOTEXIST).json()
예제 #24
0
def enquiry_upload_pin(request, enquiry_id, pin_slug):
    response = Epoxy(request)
    d = datetime.now()
    try:
        enquiry = Enquiry.objects.get(id=enquiry_id)

        enquiry_en = Enquiry.objects.get(language="EN", slug=enquiry.slug)
        enquiry_fr = Enquiry.objects.get(language="FR", slug=enquiry.slug)
    except Enquiry.DoesNotExist, e:
        return response.throw_error(error="%s" % e,
                                    code=API_EXCEPTION_DOESNOTEXIST).json()
예제 #25
0
def enquete_data(request, enquete_id):
    data = {}
    # return render_to_response('outside/enquete_data.json', RequestContext(request, data ) )

    response = Epoxy(request)

    try:
        textes = Enquete.objects.get(id=enquete_id).texte_set
    except Enquete.DoesNotExist, e:
        response.meta('enquete_id', enquete_id)
        return response.throw_error(error="%s" % e,
                                    code=API_EXCEPTION_DOESNOTEXIST).json()
예제 #26
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()
예제 #27
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()])
예제 #28
0
def signups(request):
    # logger.info("Welcome to GLUEBOX api")
    response = Epoxy(request)
    if response.method == "POST":

        form = SignupForm(request.REQUEST)

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

        if (form.cleaned_data['password1'] != form.cleaned_data['password2']):
            return response.throw_error(error={
                'password1':
                'Please enter and confirm your password',
                'password2':
                'Please enter and confirm your password'
            },
                                        code=API_EXCEPTION_FORMERRORS).json()
        """else:
			if CheckPassword( form.cleaned_data['password1'] ) < 3 :
				return response.throw_error( 
									error=_('The password stength is too weak.'),
									code=API_EXCEPTION_FORMERRORS,
									fields={'password1':'', 'password2':''}
									
									).json()
		"""

        #Check email already exists in database

        if User.objects.filter(email=form.cleaned_data['email']).count() > 0:
            return response.throw_error(
                error=_('This email is already used in the database.'),
                code=API_EXCEPTION_FORMERRORS,
                fields={
                    'email': ''
                }).json()

        try:
            created_user = User.objects.get(
                username=form.cleaned_data['username'])

        except User.DoesNotExist, e:
            # User creation
            created_user = User.objects.create(
                first_name=form.cleaned_data['first_name'],
                last_name=form.cleaned_data['last_name'],
                username=form.cleaned_data['username'].lower(),
                email=form.cleaned_data['email'],
                is_active=False,
            )

            created_user.set_password(str(form.cleaned_data['password2']))
            created_user.save()

        else:  #If the user already exists

            return response.throw_error(
                error=_('This username is already used'),
                code=API_EXCEPTION_INTEGRITY,
                fields={
                    "username": ""
                }).json()

        try:
            s = Subscriber.objects.get(user=created_user)

        except Subscriber.DoesNotExist, e:

            s = Subscriber(user=created_user,
                           affiliation=form.cleaned_data['affiliation'],
                           first_name=form.cleaned_data['first_name'],
                           last_name=form.cleaned_data['last_name'],
                           status=form.cleaned_data['status'],
                           accepted_terms=form.cleaned_data['accepted_terms'],
                           description=form.cleaned_data['description'],
                           email=form.cleaned_data['email'],
                           email_confirmed=False)
            s.save()

            mail_send = send_confirmation_mail(subscriber=s,
                                               request=request,
                                               action="signup")

            if (mail_send == False):
                created_user.delete()
                return response.throw_error(
                    error=_('This email does not exists'),
                    code=API_EXCEPTION_INTEGRITY,
                    fields={
                        "email": ""
                    }).json()
예제 #29
0
def access_request(request):

    #return HttpResponse(translation.get_language(), 'text')

    response = Epoxy(request)

    if response.method == "POST":

        form = AccessRequestForm(request.REQUEST)

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

        try:
            AccessRequest.objects.get(user=request.user,
                                      enquete=form.cleaned_data['enquete'])

        except AccessRequest.DoesNotExist, e:

            # AccessRequest creation
            request_object = AccessRequest.objects.create(
                user=request.user,
                enquete=form.cleaned_data['enquete'],
                description=form.cleaned_data['description'],
                is_activated=False)
            path = '%s%s' % (django_settings.REANALYSEURL,
                             reverse('admin:reanalyseapp_accessrequest_change',
                                     args=[request_object.id]))

            #Send mail to bequali admin : [email protected], guillaume.garcia, anne.both
            subject, from_email, to = _(
                'bequali enquete request'
            ), '*****@*****.**', django_settings.EMAIL_ADMINS

            email_args = {
                'prenom':
                form.cleaned_data['first_name'],
                'nom':
                form.cleaned_data['last_name'],
                'email':
                form.cleaned_data['email'],
                'affiliation':
                form.cleaned_data['affiliation'],
                'site':
                django_settings.OUTSIDE_SITE_NAME,
                'description':
                form.cleaned_data['description'],
                'enquete':
                form.cleaned_data['enquete'],
                'url':
                path,
                'REANALYSEURL':
                django_settings.REANALYSEURL + '/' +
                django_settings.OUTSIDE_SITE_NAME
            }

            email_args['action'] = 'ask_request'
            html_content = render_to_string('email/access_request.html',
                                            email_args)
            text_content = strip_tags(
                html_content
            )  # this strips the html, so people will have the text as well.

            msg = EmailMultiAlternatives(subject, text_content, from_email, to)
            msg.attach_alternative(html_content, "text/html")
            msg.send()

            to = form.cleaned_data['email']

            subject = "beQuali demande d'acces notification"
            email_args['action'] = "ask_notification"
            html_content = render_to_string('email/access_request.html',
                                            email_args)
            text_content = strip_tags(
                html_content
            )  # this strips the html, so people will have the text as well.

            # create the email, and attach the HTML version as well.

            send_mail(subject, text_content, from_email, [to])
            msg = EmailMultiAlternatives()
            msg.attach_alternative(html_content, "text/html")
            msg.send()

        except IntegrityError, e:

            return response.throw_error(error="%s" % e,
                                        code=API_EXCEPTION_INTEGRITY).json()
예제 #30
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()
예제 #31
0
파일: api.py 프로젝트: Ezekiah/reanalyse
def access_request( request ):
	
	#return HttpResponse(translation.get_language(), 'text')
	
	response = Epoxy( request )
	
	if response.method=="POST":

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

		try:
			AccessRequest.objects.get( user = request.user, enquete=form.cleaned_data['enquete'] )
		
		except AccessRequest.DoesNotExist, e:
			
			# AccessRequest creation
			request_object = AccessRequest.objects.create(
				user = request.user,
				enquete = form.cleaned_data['enquete'],
				description = form.cleaned_data['description'],
				is_activated = False
			)
			path = '%s%s' % (django_settings.REANALYSEURL, reverse('admin:reanalyseapp_accessrequest_change', args=[request_object.id]) )
			
			#Send mail to bequali admin : [email protected], guillaume.garcia, anne.both
			subject, from_email, to = _('bequali enquete request'),'*****@*****.**', django_settings.EMAIL_ADMINS
			

			
			email_args ={'prenom': form.cleaned_data['first_name'],
						'nom': form.cleaned_data['last_name'], 
						'email': form.cleaned_data['email'], 
						'affiliation': form.cleaned_data['affiliation'], 
						'site': django_settings.OUTSIDE_SITE_NAME,
						'description': form.cleaned_data['description'], 
						'enquete': form.cleaned_data['enquete'], 
						'url': path,
						'REANALYSEURL': django_settings.REANALYSEURL+'/'+django_settings.OUTSIDE_SITE_NAME} 
						
			
			email_args['action'] = 'ask_request'
			html_content = render_to_string('email/access_request.html', email_args)
			text_content = strip_tags(html_content) # this strips the html, so people will have the text as well.
			
			msg = EmailMultiAlternatives(subject, text_content, from_email, to)
			msg.attach_alternative(html_content, "text/html")
			msg.send()
			
			
			to = form.cleaned_data['email']
			
			
			subject = "beQuali demande d'acces notification"
			email_args['action'] = "ask_notification"			
			html_content = render_to_string('email/access_request.html', email_args)
			text_content = strip_tags(html_content) # this strips the html, so people will have the text as well.
			
			# create the email, and attach the HTML version as well.
			
			send_mail(subject, text_content, from_email, [to])
			msg = EmailMultiAlternatives()
			msg.attach_alternative(html_content, "text/html")
			msg.send()
					
			
			
			
			
		except IntegrityError, e:

			return response.throw_error( error="%s"%e, code=API_EXCEPTION_INTEGRITY).json()
예제 #32
0
파일: api.py 프로젝트: Ezekiah/reanalyse
def signups(request):
	# logger.info("Welcome to GLUEBOX api")
	response = Epoxy( request )
	if response.method=="POST":

		form = SignupForm( request.REQUEST )
		
		if not form.is_valid():
			return response.throw_error( error=form.errors, code=API_EXCEPTION_FORMERRORS).json()
		
		
		if(form.cleaned_data['password1'] != form.cleaned_data['password2']):
			return response.throw_error( 
									error={'password1':'Please enter and confirm your password', 
										'password2':'Please enter and confirm your password'}, 
									code=API_EXCEPTION_FORMERRORS).json()
		"""else:
			if CheckPassword( form.cleaned_data['password1'] ) < 3 :
				return response.throw_error( 
									error=_('The password stength is too weak.'),
									code=API_EXCEPTION_FORMERRORS,
									fields={'password1':'', 'password2':''}
									
									).json()
		"""
		
		#Check email already exists in database
		
			
		
		if User.objects.filter( email = form.cleaned_data['email'] ).count() > 0 :
			return response.throw_error( 
									error=_('This email is already used in the database.'),
									code=API_EXCEPTION_FORMERRORS,
									fields={'email':''}).json()
		
		
		try:
			created_user =  User.objects.get( username = form.cleaned_data['username'] )
		
		except User.DoesNotExist, e:	
			# User creation
			created_user = User.objects.create(
				first_name = form.cleaned_data['first_name'],
				last_name = form.cleaned_data['last_name'],
				username = form.cleaned_data['username'].lower(),
				email = form.cleaned_data['email'],
				is_active = False,
			)
			
			created_user.set_password(str(form.cleaned_data['password2']))
			created_user.save()

	
		else: #If the user already exists
			
			return response.throw_error( error=_('This username is already used'), code=API_EXCEPTION_INTEGRITY, fields={"username":""}).json()
		
	
		
		try:
			s = Subscriber.objects.get( user=created_user )

		except Subscriber.DoesNotExist, e:

			s = Subscriber(
				user = created_user,
				affiliation = form.cleaned_data['affiliation'],
				first_name = form.cleaned_data['first_name'],
				last_name = form.cleaned_data['last_name'],
				status = form.cleaned_data['status'],
				accepted_terms = form.cleaned_data['accepted_terms'],
				description = form.cleaned_data['description'],
				email = form.cleaned_data['email'],
				email_confirmed=False
			)
			s.save()
				
			mail_send = send_confirmation_mail( subscriber=s, request=request, action="signup" )
			
			if( mail_send ==  False ):
				created_user.delete()
				return response.throw_error( error=_('This email does not exists'), code=API_EXCEPTION_INTEGRITY, fields={"email":""}).json()