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
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
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
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
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))
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), )
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) )
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), )
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) )
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))
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
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