Beispiel #1
0
def FeedbackView(request):
    import datetime
    import os, sys, time

    if CommonToAllViews(
            request
    ):  # any referrer blocks or web request checks processed here
        raise django.http.Http404

    if request.method == 'POST':
        try:
            form = forms.FeedbackForm(request.POST)
        except:
            time.sleep(1.0)
            form = forms.FeedbackForm(request.POST)
        if not form.is_valid():  # validators added, see form definition
            items_to_render = {}
            items_to_render['mainForm'] = form
            return render_to_response('zunzun/invalid_form_data.html',
                                      items_to_render)
        msg = 'Email from ' + form.cleaned_data[
            'emailAddress'] + '\n\nAt ' + str(datetime.datetime.now(
            )) + "\n\n" + form.cleaned_data['feedbackText']
        EmailMessage('ZunZunSite Feedback Form',
                     msg,
                     to=[settings.FEEDBACK_EMAIL_ADDRESS]).send()

        return render_to_response('zunzun/feedback_reply.html', {})
    else:  # not a POST
        return HttpResponseRedirect('/')
Beispiel #2
0
def HomePageView(request):
    import os, sys, time

    # whenever the home page is loaded, clear expired sessions
    SessionStore().clear_expired()

    # whenever the home page is loaded, make sure there is
    # space in the temp directory for newly created files
    totalDirSize = 0
    dirInfo = []
    for item in os.listdir(settings.TEMP_FILES_DIR):
        itempath = os.path.join(settings.TEMP_FILES_DIR, item)
        if os.path.isfile(itempath):
            fileSize = os.path.getsize(itempath)
            fileMtime = os.path.getmtime(itempath)  # to sort by creation time
            dirInfo.append([fileMtime, fileSize, item])
            totalDirSize += fileSize

    # approximately the max temp directory number of bytes
    maxSize = settings.MAX_TEMP_DIR_SIZE_IN_MBYTES * 1000000
    tempDir = settings.TEMP_FILES_DIR

    if totalDirSize > maxSize:
        totalReduction = 0
        reductionAmount = (totalDirSize - maxSize) + (maxSize * 0.25)
        dirInfo.sort()  # delete oldest files first
        for fileItem in dirInfo:
            if totalReduction < reductionAmount:
                totalReduction += fileItem[1]
                try:  # prevent possible exceptions from race conditions
                    os.remove(os.path.join(tempDir, fileItem[2]))
                except:
                    pass
            else:
                break

    # now start code for view generation
    if CommonToAllViews(
            request
    ):  # any referrer blocks or web request checks processed here
        raise django.http.Http404

    request.session['cookie_test'] = 1

    items_to_render = {}
    items_to_render['dim_to_spline_list'] = [[
        '2', pyeq2.Models_2D.Spline.Spline()
    ], ['3', pyeq2.Models_3D.Spline.Spline()]]
    items_to_render['dim_to_map_list'] = [[
        '2', GetEquationInfoDictionary(2, 'Standard')
    ], ['3', GetEquationInfoDictionary(3, 'Standard')]]
    items_to_render[
        'header_text'] = 'ZunZunSite Online Curve Fitting<br>and Surface Fitting Web Site'
    items_to_render['feedbackForm'] = forms.FeedbackForm()
    items_to_render['loadavg'] = os.getloadavg()

    return render_to_response('zunzun/home_page.html', items_to_render)
Beispiel #3
0
def handle_ajax(request, url):
    if not request.POST:
        return HttpResponse(json.dumps({'error': 'no post received'}))
    else:
        post = {}
        for k in request.POST:
            post[k] = request.POST[k]
        post['url'] = url
        post['site'] = Site.objects.get_current().id
        post['user'] = request.user.username
        post['email'] = request.user.email
        form = forms.FeedbackForm(post)
        if form.is_valid():
            form.save()
            return HttpResponse(json.dumps({}))
        else:
            return HttpResponse(json.dumps({'errors': sanitize(form.errors)}))
Beispiel #4
0
def feedback():
    form = forms.FeedbackForm(request.form)
    if request.method == 'POST' and form.validate():
        name = form.name.data
        email = form.email.data
        feedback = form.feedback.data
        msg = Message("Feedback from webapp",
                    sender="*****@*****.**",
                    recipients=["*****@*****.**"])
        msg.body = """
        From: %s <%s>
        %s
        """ % (name, email, feedback)
        mail.send(msg)
        flash('Thank you for your feedback', 'success')
        return render_template('about.html', form=form)
        
    return render_template('about.html', form=form)
Beispiel #5
0
def home():
    confirmParticipation = forms.confirmParticipation()
    deleteParticipation = forms.deleteParticipation()
    LeaveFeedback = forms.LeaveFeedback()
    FeedbackForm = forms.FeedbackForm()
    if "submitD" in request.form and deleteParticipation.validate_on_submit():
        event_id = deleteParticipation.event_id.data
        event = Event.query.filter_by(id=event_id).first()
        student = Student.query.filter_by(id=session.get('id')).first()
        event.numofPeople += -1
        student.partecipations.remove(event)
        db.session.commit()

        return redirect('home')
    elif "submitC" in request.form and confirmParticipation.validate_on_submit(
    ):
        # add user to the list of participants
        event_id = confirmParticipation.event_id.data
        event = Event.query.filter_by(id=event_id).first()
        student = Student.query.filter_by(id=session.get('id')).first()

        if not Student.query.join(partecipation).join(Event).filter(
            (partecipation.c.student_id == student.id)
                & (partecipation.c.event_id == event.id)).first():
            event.numofPeople += 1

        student.partecipations.append(event)
        db.session.add(student)
        db.session.add(event)
        db.session.commit()

        return redirect('home')

    if "submitE" in request.form and LeaveFeedback.validate_on_submit():
        # add feedback
        event_id = LeaveFeedback.event_id.data
        session['event_id'] = event_id
        session['event_name'] = Event.query.filter_by(id=event_id).first().name
        return redirect('feedback')

    if current_user.is_authenticated:

        if Student.query.filter_by(email=session.get(
                'email')).first():  ## if student then show the wall
            events = Event.query.all()
            return render_template('index.html',
                                   events=events,
                                   confirmParticipation=confirmParticipation,
                                   deleteParticipation=deleteParticipation,
                                   partecipation=partecipation,
                                   Student=Student,
                                   Event=Event,
                                   BPs=BusinessPartner,
                                   and_=and_,
                                   feedback=feedback,
                                   LeaveFeedback=LeaveFeedback)
        elif BusinessPartner.query.filter_by(
                email=session.get('email')).first():

            #if bp show its own events
            events = Event.query.filter_by(bp_id=session.get('id'))
            return render_template('index.html',
                                   events=events,
                                   BPs=BusinessPartner)
    else:
        return redirect('welcome')