Ejemplo n.º 1
0
def create_user_wiki_page(user, request):
    w = WikiPage()
    w.url = reverse('display_user', kwargs={
        'user_name': user.username
    }).rstrip('/').lstrip('/')
    w.author = user
    w.save()

    r = WikiRevision()
    r.revision_id = 1
    r.content = """
== About me ==
Write here about you...
                """
    r.date = datetime.datetime.now()
    r.ip = get_ip_from_request(request)
    r.wiki_page = w
    r.title = "Profile: %s" % user.username
    r.markup_type = 'C'
    r.security = 'Protected'
    r.author = user
    r.save()

    w.save()

    return w
Ejemplo n.º 2
0
def create_contest_wiki_page(contest, request):
    user = user_auth(request)

    w = WikiPage()
    w.url = reverse('display_contest', kwargs={
        'contest_code': contest.code
    }).rstrip('/').lstrip('/')
    w.author = user
    w.save()

    r = WikiRevision()
    r.revision_id = 1
    r.content = """
=== Contest %s ==
Write here about contest %s...
                """ % (contest.code, contest.code)
    r.date = datetime.datetime.now()
    r.ip = get_ip_from_request(request)
    r.wiki_page = w
    r.title = "Contest %s" % contest.code
    r.markup_type = 'C'
    r.security = 'Private'
    r.author = user
    r.save()

    w.save()

    return w
Ejemplo n.º 3
0
def create_contest_wiki_page (contest, request):
    user = user_auth(request)

    w = WikiPage()
    w.url = reverse('display_contest',
                    kwargs = {'contest_code' : contest.code }).rstrip('/').lstrip('/')
    w.author = user
    w.save()

    r = WikiRevision()
    r.revision_id = 1
    r.content = """
=== Contest %s ==
Write here about contest %s...
                """ % (contest.code, contest.code)
    r.date = datetime.datetime.now()
    r.ip = get_ip_from_request(request)
    r.wiki_page = w
    r.title = "Contest %s" % contest.code
    r.markup_type = 'C'
    r.security = 'Private'
    r.author = user
    r.save()

    w.save()

    return w
Ejemplo n.º 4
0
def create_user_wiki_page (user, request):
    w = WikiPage()
    w.url = reverse('display_user',
                    kwargs = { 'user_name' : user.username }).rstrip('/').lstrip('/')
    w.author = user
    w.save()

    r = WikiRevision()
    r.revision_id = 1
    r.content = """
== About me ==
Write here about you...
                """
    r.date = datetime.datetime.now()
    r.ip = get_ip_from_request(request)
    r.wiki_page = w
    r.title = "Profile: %s" % user.username
    r.markup_type = 'C'
    r.security = 'Protected'
    r.author = user
    r.save()

    w.save()

    return w
Ejemplo n.º 5
0
def edit_page(request, page_url, widgets={}):
    user = user_auth(request)
    page = get_object_or_404(WikiPage, url=page_url)
    revisions_list = WikiRevision.objects.filter(wiki_page=page)

    if not page.last_revision().can_edit(user):
        return redirect_to_index(
            "You don't have enough rights to edit this page, i will redirect you..."
        )

    if request.method == 'POST':  # we have some POST data.
        form = WikiRevisionEditForm(request.POST)
        if form.is_valid():
            revision = form.save(commit=False)
            revision.revision_id = page.last_revision().revision_id + 1
            revision.date = datetime.datetime.now()
            revision.ip = get_ip_from_request(request)
            revision.wiki_page = page
            revision.author = user
            revision.save()

            page.save()
            if 'is_problem' in widgets:
                return HttpResponseRedirect(
                    reverse('display_problem',
                            kwargs={'problem_code': widgets['problem'].code}))

            return HttpResponseRedirect(
                reverse('display_page', kwargs={'page_url': page.url}))
        else:
            print form.errors
    else:
        form = WikiRevisionEditForm(page.last_revision)
    # Wtf isn't page.last_revision().wiki_page the same thing as page ?
    # can_attach = page.last_revision().wiki_page.can_attach_files(user)
    can_attach = page.can_attach_files(user)
    can_edit = page.last_revision().can_edit(user)
    can_view = page.last_revision().can_view(user)

    return render_to_response('wiki_edit_revision.html', {
        'revision': page.last_revision(),
        'page': page,
        'form': form,
        'edit': True,
        'widgets': widgets,
        'can_view': can_view,
        'can_edit': can_edit,
        'can_attach': can_attach,
        'navigation': {
            'main': 'wiki',
            'other': 'edit-page',
        }
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 6
0
def attach(request, page_url):
    user = user_auth(request)
    page = get_object_or_404(WikiPage, url=page_url)

    if page.can_attach_files(user) is False:
        return redirect_to_index(
            "You don't have permissions to attach files to this page.")

    message = None

    if request.method == 'POST':
        if 'file_name' in request.FILES:
            attachment = WikiAttachment()
            attachment.name = request.FILES['file_name'].name
            attachment.wiki_page = page
            attachment.ip = get_ip_from_request(request)
            attachment.size = request.FILES['file_name'].size
            attachment.date = datetime.datetime.now()
            attachment.author = user
            attachment.security = 'Public'
            attachment.hash = ''
            attachment.save()

            attachment.hash = hashlib.md5(str(attachment.id)).hexdigest()
            attachment.save()

            save_file(dest=os.path.join(
                ATTACHMENTS_DIR,
                "attachment%d-%s" % (attachment.id, attachment.name)),
                      file=request.FILES['file_name'])

            message = 'File uploaded successfully.'

    # Wtf isn't page.last_revision().wiki_page = page ?
    # can_attach = page.last_revision().wiki_page.can_attach_files(user)
    can_attach = page.can_attach_files(user)
    can_edit = page.last_revision().can_edit(user)
    can_view = page.last_revision().can_view(user)

    return render_to_response(
        'wiki/attach.html',
        {
            'page': page,
            'message': message if message is not None else '',
            'can_view': can_view,
            'can_edit': can_edit,
            'can_attach': can_attach,
            'navigation': {
                'main': 'wiki',
                'other': 'attach',
            }
        },
        context_instance=RequestContext(request),
    )
Ejemplo n.º 7
0
def edit_page (request, page_url, widgets = {}):
    user = user_auth(request)
    page = get_object_or_404(WikiPage, url=page_url)
    revisions_list = WikiRevision.objects.filter(wiki_page=page)

    if not page.last_revision().can_edit(user):
        return redirect_to_index("You don't have enough rights to edit this page, i will redirect you...")

    if request.method == 'POST':    # we have some POST data.
        form = WikiRevisionEditForm(request.POST)
        if form.is_valid():
            revision = form.save(commit = False)
            revision.revision_id = page.last_revision().revision_id + 1
            revision.date = datetime.datetime.now()
            revision.ip = get_ip_from_request(request)
            revision.wiki_page = page
            revision.author = user
            revision.save()

            page.save()
            if 'is_problem' in widgets:
                return HttpResponseRedirect(reverse('display_problem',
                                                    kwargs = {'problem_code' : widgets['problem'].code }))

            return HttpResponseRedirect(reverse('display_page',
                                                    kwargs = {'page_url' : page.url }))
        else:
            print form.errors
    else:
        form = WikiRevisionEditForm(page.last_revision)
    # Wtf isn't page.last_revision().wiki_page the same thing as page ?
    # can_attach = page.last_revision().wiki_page.can_attach_files(user)
    can_attach = page.can_attach_files(user)
    can_edit = page.last_revision().can_edit(user)
    can_view = page.last_revision().can_view(user)

    return render_to_response('wiki_edit_revision.html',
                              {'revision' : page.last_revision(),
                               'page' : page,
                               'form' : form,
                               'edit' : True,
                               'widgets' : widgets,
                               'can_view' : can_view,
                               'can_edit' : can_edit,
                               'can_attach' : can_attach,
                               'navigation' : {
                                    'main' : 'wiki',
                                    'other' : 'edit-page',
                               }
                              },
                              context_instance = RequestContext(request)
                             )
Ejemplo n.º 8
0
def attach (request, page_url):
    user = user_auth(request)
    page = get_object_or_404(WikiPage, url = page_url)

    if page.can_attach_files(user) is False:
        return redirect_to_index("You don't have permissions to attach files to this page.")

    message = None

    if request.method == 'POST':
        if 'file_name' in request.FILES:
            attachment = WikiAttachment()
            attachment.name = request.FILES['file_name'].name
            attachment.wiki_page = page
            attachment.ip = get_ip_from_request(request)
            attachment.size = request.FILES['file_name'].size
            attachment.date = datetime.datetime.now()
            attachment.author = user
            attachment.security = 'Public'
            attachment.hash = ''
            attachment.save()

            attachment.hash = hashlib.md5(str(attachment.id)).hexdigest()
            attachment.save()

            save_file(dest = os.path.join(ATTACHMENTS_DIR, "attachment%d-%s" % (attachment.id, attachment.name)), file = request.FILES['file_name'])

            message = 'File uploaded successfully.'

    # Wtf isn't page.last_revision().wiki_page = page ?
    # can_attach = page.last_revision().wiki_page.can_attach_files(user)
    can_attach = page.can_attach_files(user)
    can_edit = page.last_revision().can_edit(user)
    can_view = page.last_revision().can_view(user)

    return render_to_response('wiki/attach.html',
                              {
                               'page' : page,
                               'message' : message if message is not None else '',
                               'can_view' : can_view,
                               'can_edit' : can_edit,
                               'can_attach' : can_attach,
                               'navigation' : {
                                    'main' : 'wiki',
                                    'other' : 'attach',
                               }
                              },
                              context_instance = RequestContext(request),
                             )
Ejemplo n.º 9
0
def create_wiki_page (request, page_url = None):
    user = user_auth(request)

    if user.has_perm('app.add_wikipage') is False:
        return redirect_to_index("You don't have permission to add wiki pages.")

    if WikiPage.objects.filter(url = page_url):
        return redirect_to_index("Page already exists...")

    if request.method == 'POST':
        form = WikiRevisionEditForm(request.POST)

        if form.is_valid():
            page_url = request.POST['url']
            page = WikiPage()
            page.url = page_url
            page.author = user
            page.save()

            revision = form.save(commit = False)
            revision.revision_id = 1
            revision.date = datetime.datetime.now()
            revision.ip = get_ip_from_request(request)
            revision.wiki_page = page
            revision.author = user
            revision.save()

            page.save()

            return HttpResponseRedirect(reverse('display_page',
                                            kwargs={'page_url' : page_url }))
    else:
        form = WikiRevisionEditForm()

    return render_to_response('wiki_edit_revision.html',
                              {'revision' : 1,
                               'form' : form,
                               'edit' : False,
                               'page_url' : page_url,
                              },
                              context_instance = RequestContext(request)
                             )
Ejemplo n.º 10
0
def create_wiki_page(request, page_url=None):
    user = user_auth(request)

    if user.has_perm('app.add_wikipage') is False:
        return redirect_to_index(
            "You don't have permission to add wiki pages.")

    if WikiPage.objects.filter(url=page_url):
        return redirect_to_index("Page already exists...")

    if request.method == 'POST':
        form = WikiRevisionEditForm(request.POST)

        if form.is_valid():
            page_url = request.POST['url']
            page = WikiPage()
            page.url = page_url
            page.author = user
            page.save()

            revision = form.save(commit=False)
            revision.revision_id = 1
            revision.date = datetime.datetime.now()
            revision.ip = get_ip_from_request(request)
            revision.wiki_page = page
            revision.author = user
            revision.save()

            page.save()

            return HttpResponseRedirect(
                reverse('display_page', kwargs={'page_url': page_url}))
    else:
        form = WikiRevisionEditForm()

    return render_to_response('wiki_edit_revision.html', {
        'revision': 1,
        'form': form,
        'edit': False,
        'page_url': page_url,
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 11
0
def create_problem_wiki_page(problem, request):
    user = user_auth(request)

    w = WikiPage()
    w.url = reverse('display_problem', kwargs={
        'problem_code': problem.code
    }).rstrip('/').lstrip('/')
    w.author = user
    w.save()

    r = WikiRevision()
    r.revision_id = 1
    r.content = """
== %s ==
Problem body...
=== Input file ===
From input file //%s.in// ...
=== Output file ===
Write ... to output file //%s.out//.
=== Restrictions and specifications
*0 < //N// < 1000

|=%s.in |=%s.out |
|some input |some output |
                """ % (problem.code, problem.code, problem.code, problem.code,
                       problem.code)

    r.date = datetime.datetime.now()
    r.ip = get_ip_from_request(request)
    r.wiki_page = w
    r.title = problem.code
    r.markup_type = 'C'
    r.security = 'Private'
    r.author = user
    r.save()

    w.save()

    return w
Ejemplo n.º 12
0
def create_problem_wiki_page (problem, request):
    user = user_auth(request)

    w = WikiPage()
    w.url = reverse('display_problem',
                    kwargs = { 'problem_code' : problem.code }).rstrip('/').lstrip('/')
    w.author = user
    w.save()

    r = WikiRevision()
    r.revision_id = 1
    r.content = """
== %s ==
Problem body...
=== Input file ===
From input file //%s.in// ...
=== Output file ===
Write ... to output file //%s.out//.
=== Restrictions and specifications
*0 < //N// < 1000

|=%s.in |=%s.out |
|some input |some output |
                """ % (problem.code, problem.code, problem.code, problem.code, problem.code)

    r.date = datetime.datetime.now()
    r.ip = get_ip_from_request(request)
    r.wiki_page = w
    r.title = problem.code
    r.markup_type = 'C'
    r.security = 'Private'
    r.author = user
    r.save()

    w.save()

    return w