示例#1
0
def SearchPage(request):
    try:
        if request.GET['q']:
            try:
                redirect_name = TitleModel.objects.get(name=request.GET['q']).name
            except:
                new_title = TitleModel(name=request.GET['q'])
                #entry formunun kodları
                if request.POST:
                    new_title.save()
                    form = EntryForm(request.POST, initial={'author': request.user, 'title': request.GET['q']})
                    if form.is_valid():
                        form.save()
                        return HttpResponseRedirect('/baslik/{}'.format(request.GET['q']))
                    else:
                        TitleModel.objects.get(name=request.GET['q']).delete()
                else:
                    form = EntryForm(initial={'author': request.user, 'title': request.GET['q']})

                args = {}
                args.update(csrf(request))
                args['form'] = form
                return render(request, 'search/no_title.html', {
                    'form': args,
                    'title': request.GET['q']
                })

            return HttpResponseRedirect('/baslik/{}'.format(redirect_name))
        else:
            return render(request, 'search/search.html')
    except:
        return render(request, 'search/search.html')
示例#2
0
def create_entry(request):
    if request.method == 'POST':
        entry_form = EntryForm(request.POST)
        if entry_form.is_valid():
            entry_form.save(request.user)
            return HttpResponseRedirect('/')
    else:
        return HttpResponseRedirect('/')
示例#3
0
 def test_entryform_valid(self):
     user = User.objects.create_user(username='******',
                                     email='*****@*****.**',
                                     password='******')
     form = EntryForm({
         'user': user,
         'keyword': 'test',
         'content': 'this is a test'
     })
     self.assertTrue(form.is_valid())
示例#4
0
def EntryPage(request, entry_id):
    entry = get_object_or_404(EntryModel, id=entry_id)
    if request.POST:
        form = EntryForm(request.POST,
                         initial={
                             'author':
                             request.user,
                             'title':
                             get_object_or_404(TitleModel, name=entry.title)
                         })
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/baslik/{}'.format(entry.title))
    else:
        form = EntryForm(
            initial={
                'author': request.user,
                'title': get_object_or_404(TitleModel, name=entry.title)
            })

    args = {}
    args.update(csrf(request))
    args['form'] = form

    return render(request, 'entry_page.html', {'entry': entry, 'form': args})
示例#5
0
def EntryPage(request, entry_id):
    entry = get_object_or_404(EntryModel, id=entry_id)
    if request.POST:
        form = EntryForm(request.POST, initial={'author': request.user, 'title': get_object_or_404(TitleModel, name=entry.title)})
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/baslik/{}'.format(entry.title))
    else:
        form = EntryForm(initial={'author': request.user, 'title': get_object_or_404(TitleModel, name=entry.title)})

    args = {}
    args.update(csrf(request))
    args['form'] = form

    return render(request, 'entry_page.html', {
        'entry': entry,
        'form': args
    })
示例#6
0
def TitlePage(request, title):
    #entry formunun kodları
    if request.POST:
        form = EntryForm(request.POST, initial={'author': request.user, 'title': get_object_or_404(TitleModel, name=title)})
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/baslik/{}'.format(title))
    else:
        form = EntryForm(initial={'author': request.user, 'title': get_object_or_404(TitleModel, name=title)})

    args = {}
    args.update(csrf(request))
    args['form'] = form

    #digerleri
    try:
        entries_of_the_title = get_list_or_404(EntryModel, title=get_object_or_404(TitleModel, name=title))

    except:
        entries_of_the_title = ""

    #sayfa ayarlama kodlari
    pages = Paginator(entries_of_the_title, 10)
    try:
        if request.GET['p']:
            entries_of_the_title = pages.page(int(request.GET['p']))
            num = str(request.GET['p'])
    except:
        entries_of_the_title = pages.page(1)
        num = "1"


    #hitcount



    return render(request, 'title_page.html', {
        'title': title,
        'entries': entries_of_the_title,
        'form': args,
        'pages': pages,
        'current_page': entries_of_the_title,
        'page_num': num
        }, context_instance=RequestContext(request))
示例#7
0
def TitlePage(request, title):
    #entry formunun kodları
    if request.POST:
        form = EntryForm(request.POST,
                         initial={
                             'author': request.user,
                             'title': get_object_or_404(TitleModel, name=title)
                         })
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/baslik/{}'.format(title))
    else:
        form = EntryForm(
            initial={
                'author': request.user,
                'title': get_object_or_404(TitleModel, name=title)
            })

    args = {}
    args.update(csrf(request))
    args['form'] = form

    #digerleri
    try:
        entries_of_the_title = get_list_or_404(EntryModel,
                                               title=get_object_or_404(
                                                   TitleModel, name=title))

    except:
        entries_of_the_title = ""

    #sayfa ayarlama kodlari
    pages = Paginator(entries_of_the_title, 10)
    try:
        if request.GET['p']:
            entries_of_the_title = pages.page(int(request.GET['p']))
            num = str(request.GET['p'])
    except:
        entries_of_the_title = pages.page(1)
        num = "1"

    #hitcount

    return render(request,
                  'title_page.html', {
                      'title': title,
                      'entries': entries_of_the_title,
                      'form': args,
                      'pages': pages,
                      'current_page': entries_of_the_title,
                      'page_num': num
                  },
                  context_instance=RequestContext(request))
示例#8
0
def EditPage(request, id):
    if id:
        entry = get_object_or_404(EntryModel, id=id)
        if request.user != entry.author:
            return Http404()
    else:
        return Http404()

    if request.POST:
        form = EntryForm(request.POST, instance=entry)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/entry/{}'.format(entry.id))
    else:
        form = EntryForm(instance=entry)

    args = {}
    args.update(csrf(request))
    args['form'] = form
    return render(request, 'edit_entry.html', {
        'form': args,
        'entry': entry
        })
示例#9
0
def index(request,
          template='main/view_entries.html',
          page_template='main/view_entries_page.html'):
    try:
        cookie = request.session['beta']
    except KeyError:
        return HttpResponseRedirect('/beta/')
    else:
        domain = Site.objects.get_current().domain
        school_filter = request.GET.get('school')
        if not school_filter:
            entry_list = Entry.objects.filter(
                published='A').order_by('-created')
            entries = sorted(entry_list,
                             key=lambda o: o.frontpage_rank(),
                             reverse=True)
        else:
            entry_list = Entry.objects.filter(published='A').filter(
                school=school_filter).order_by('-created')
            entries = sorted(entry_list,
                             key=lambda o: o.frontpage_rank(),
                             reverse=True)
        form = EntryForm()
        pickerform = SchoolPickerForm(initial={'schoolpicker': school_filter})
        showform = request.GET.get('showform')
        context = {
            'form': form,
            'pickerform': pickerform,
            'domain': domain,
            'entries': entry_list,
            'page_template': page_template,
            'showform': showform,
        }

        if request.is_ajax():
            template = page_template
        if request.session['beta'] == 'first':
            request.session['beta'] = 'second'
        elif request.session['beta'] == 'second':
            request.session['beta'] = 'third'
        return render_to_response(template,
                                  context,
                                  context_instance=RequestContext(request))
示例#10
0
def EditPage(request, id):
    if id:
        entry = get_object_or_404(EntryModel, id=id)
        if request.user != entry.author:
            return Http404()
    else:
        return Http404()

    if request.POST:
        form = EntryForm(request.POST, instance=entry)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/entry/{}'.format(entry.id))
    else:
        form = EntryForm(instance=entry)

    args = {}
    args.update(csrf(request))
    args['form'] = form
    return render(request, 'edit_entry.html', {'form': args, 'entry': entry})
示例#11
0
def SearchPage(request):
    try:
        if request.GET['q']:
            try:
                redirect_name = TitleModel.objects.get(
                    name=request.GET['q']).name
            except:
                new_title = TitleModel(name=request.GET['q'])
                #entry formunun kodları
                if request.POST:
                    new_title.save()
                    form = EntryForm(request.POST,
                                     initial={
                                         'author': request.user,
                                         'title': request.GET['q']
                                     })
                    if form.is_valid():
                        form.save()
                        return HttpResponseRedirect('/baslik/{}'.format(
                            request.GET['q']))
                    else:
                        TitleModel.objects.get(name=request.GET['q']).delete()
                else:
                    form = EntryForm(initial={
                        'author': request.user,
                        'title': request.GET['q']
                    })

                args = {}
                args.update(csrf(request))
                args['form'] = form
                return render(request, 'search/no_title.html', {
                    'form': args,
                    'title': request.GET['q']
                })

            return HttpResponseRedirect('/baslik/{}'.format(redirect_name))
        else:
            return render(request, 'search/search.html')
    except:
        return render(request, 'search/search.html')
示例#12
0
def submit(request):
    if request.method == 'POST':
        form = EntryForm(request.POST or None)
        if not request.POST['honeypot']:
            try:
                time_since_last_post = time() - float(
                    request.session['submitted']
                )  # Check if user has previously submitted an entry
            except (KeyError, TypeError, ValueError):  # Cookie does not exist
                time_since_last_post = None
            finally:
                if not time_since_last_post or time_since_last_post >= 10:  #57600: # Prevent submission more than once in 16 hours
                    if form.is_valid():
                        e = form.save(commit=False)
                        e.upvotes = 1
                        e.downvotes = 0
                        e.published = 'A'  # Change to "W" before launch
                        #e.notify = ''
                        #if e.solution == '' or e.solution[:46] == 'Have an idea of how your school can do better?':
                        #	    e.solution = 'I have no idea.'
                        e.thePost = unicode(e.thePost).encode(
                            'utf-8', 'ignore')
                        #e.problem = unicode(e.problem).encode('utf-8', 'ignore')
                        e.save()
                        form.save_m2m()
                        entry_id = str(e.id)
                        request.session[entry_id] = "up"
                        request.session['submitted'] = str(time())
                        if request.is_ajax():
                            return HttpResponse(status=200)
                        else:
                            request.session['errors'] = ''
                            messages.success(
                                request,
                                "Thank you for sending your thoughts to fixmyschool.net. Your submission is now awaiting moderation. Please check back in the next hour or two to see if your post has been approved."
                            )
                            return HttpResponseRedirect('/')
                    else:
                        html = form.errors.as_ul()
                        if request.is_ajax():
                            response = simplejson.dumps({
                                'success': 'False',
                                'html': html
                            })
                            return HttpResponse(
                                response,
                                content_type="application/javascript")
                        else:
                            request.session['errors'] = html
                            return HttpResponseRedirect("/?showform=True#form")

                else:  # User is trying a repeat submission in less than 16 hrs
                    html = "While we appreciate your dedication to fixmyschool.net,<br> only one submission per hour is permitted during the beta. Once the site launches, the limit will decrease to one submission per day. Please try again later."
                    response = simplejson.dumps({
                        'success': 'False',
                        'html': html
                    })
                    return HttpResponse(response,
                                        content_type="application/javascript")
        else:
            return HttpResponse(status=403)  #spambot trying to submit form