Ejemplo n.º 1
0
 def setUp(self):
     self.w = wiki_handler()
     user_page = self.w.user.getUserPage()
     sandbox = Page(self.w.site, user_page.title()+'/Sandbox')
     self.test_pages = [ Page(self.w.site, sandbox.title()+p) for p in ('/test1', '/test2') ]
     for p in self.test_pages:
         p.put('blablabla')
Ejemplo n.º 2
0
def move_page(request):
    """
    Move content of a page to another.
    This view isn't purpose in HTML.
    """
    w = wiki_handler()
    w.move_page(request.POST['from'], request.POST['to'])
    messages.add_message(request, messages.INFO, 'Action en cours.')
    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 3
0
def search_contrib(request):
    """
    DO NOT USE
    """
    w = wiki_handler()
    contribs = w.get_contrib()
    if request.GET.get('q', ''):
        contribs = [ (p, i, d, c) for p, i, d, c in contribs if request.GET['q'] in p.title() ]
    return render(request, 'contrib/li.html', {
        'crontribs': contribs,
    })
Ejemplo n.º 4
0
def get_page_text(request):
    """
    Get a paget text with 'q' key.
    """
    w = wiki_handler()
    page = w.get_page(request.GET['q'])
    if page.exists():
        page_text = page.get()
    else:
        page_text = ''
    return HttpResponse(page_text)
Ejemplo n.º 5
0
def put_page_text(request):
    """
    Put text to a page with 'page' and 'text' keys.
    """
    w = wiki_handler()
    page = w.get_page(request.POST['page'])
    page.put(request.POST['text'], request.POST['comment'])
    messages.add_message(request, messages.SUCCESS, _("Publication done."))
    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 6
0
def get_page_links(request):
    """
    Return a list of link to wiki's page.
    """
    w = wiki_handler()
    page_names = request.GET.getlist('pages[]')
    results = w.get_pages_wiki_url(page_names)
    msgs = results.make_messages(request, header=_('Hyperlinks'))

    return render(request, 'base/messages.html', {
        'messages': msgs,
    })
Ejemplo n.º 7
0
def delete_category(request):
    """
    Delete category.
    """
    w = wiki_handler()
    results.delete(request.POST['category'])
    messages.add_message(request, messages.SUCCESS, _('Category deleting finished.'))
    msgs = results.make_messages(request)

    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 8
0
def move_category(request):
    """
    Rename category.
    This view use Celery if it's actived.
    """
    if CELERY_IS_ACTIVE:
        async_move_category.delay(request.POST['from'], request.POST['to'])
        messages.add_message(request, messages.INFO, _('Category moving in progress.'))
    else:
        w = wiki_handler()
        w.move_category(request.POST['from'], request.POST['to'])
        messages.add_message(request, messages.INFO, _('Category moving finished.'))
    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 9
0
def check_page(request):
    """
    Check if page exists and return appropriate message.
    """
    w = wiki_handler()
    p = w.get_page(request.GET['page'])
    if p.exists():
        messages.add_message(request, messages.SUCCESS, _("'%(page)s' exists.") %
            {'page': '<a href="%s">%s</a>' % (w.get_wiki_url(p), p.title()) })
    else:
        messages.add_message(request, messages.WARNING, _("'%(page)s' not found.") %
            {'page': '<a href="%s">%s</a>' % (w.get_wiki_url(p), p.title()) })
    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 10
0
def sub(request):
    """
    Make a simple text subsitution in pages' text.
    This view use Celery if it's actived.
    """
    pages = request.POST.getlist('pages[]')
    if CELERY_IS_ACTIVE:
        async_sub.delay(pages, request.POST['from'], request.POST['to'])
        messages.add_message(request, messages.INFO, _('Text subsitution in progress'))
    else:
        w = wiki_handler()
        results = w.sub(pages, request.POST['from'], request.POST['to'])
        msgs = results.make_messages(request)

    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 11
0
def add_internal_link(request):
    """
    Modify page's text for add internal links for the given string.
    A text link can be given with request['link_test']
    This view use Celery if it's actived.
    """
    pages = request.POST.getlist('pages[]')
    if CELERY_IS_ACTIVE:
        async_add_internal_link.delay(pages, request.POST['link'], request.POST['link_text'])
        messages.add_message(request, messages.INFO, _('Hyperlinks adding in progress.'))
    else:
        w = wiki_handler()
        results = w.add_internal_link(pages, request.POST['link'], request.POST['link_text'])
        msgs = results.make_messages(request)

    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 12
0
def add_category(request):
    """
    Add category to a list of pages.
    This view use Celery if it's actived.
    """
    pages = request.POST.getlist('pages[]')
    if CELERY_IS_ACTIVE:
        async_add_category.delay(pages, request.POST['category'])
        messages.add_message(request, messages.INFO, _('Category adding in progress.'))
        msgs = messages.get_messages(request)
    else:
        w = wiki_handler()
        results = w.add_category(pages, request.POST['category'])
        msgs = results.make_messages(request)

    return render(request, 'base/messages.html', {
        'messages': msgs,
    })
Ejemplo n.º 13
0
def remove_category(request):
    """
    Remove category from a list of pages.
    This view use Celery if it's actived.
    """
    pages = request.POST.getlist('pages[]')
    if CELERY_IS_ACTIVE:
        async_remove_category.delay(pages, request.POST['category'])
        messages.add_message(request, messages.INFO, _('Category removing in progress.'))
        msgs = messages.get_messages(request)
    else:
        w = wiki_handler()
        results.remove_category(pages, request.POST['category'])
        messages.add_message(request, messages.INFO, _('Category removing finished.'))
        msgs = results.make_messages(request)

    return render(request, 'base/messages.html', {
        'messages': messages.get_messages(request),
    })
Ejemplo n.º 14
0
def index(request):
    """
    Index of website.
    This is the only view which is not AJAX.
    """
    # TODO
    # Handling wiki ValueError
    try:
        w = wiki_handler()
    except Wiki_User.NoActiveUser:
        w = None

    return render(request, 'index.html', {
        'title': 'ZuluBot',
        'w': w,
        'wiki_user_form': Wiki_User_Form(),
        'Users': Wiki_User.objects.all(),
        'F': Wiki_User_Form(),
        'CELERY_IS_ACTIVE': CELERY_IS_ACTIVE
    })
Ejemplo n.º 15
0
def move_pages(request):
    """
    Rename list of pages with request's keys.
    It uses 'pat' 'repl' as re.sub with regex.

    This view use Celery if it's actived and there
    are more than one page to rename.
    """
    pages = request.POST.getlist('pages[]')
    if len(pages) > 1 and CELERY_IS_ACTIVE:
        async_move_pages.delay(pages, request.POST['pat'], request.POST['repl'], request.POST['redirect'])
        messages.add_message(request, messages.INFO, _('Renaming in progress.'))
        msgs = messages.get_messages(request)
    else:
        w = wiki_handler()
        results = w.move_pages(pages, request.POST['pat'], request.POST['repl'], request.POST['redirect'])
        msgs = results.make_messages(request)

    return render(request, 'base/messages.html', {
        'messages': msgs,
    })
Ejemplo n.º 16
0
def search_page(request):
    """
    Return a list of page with <option>.
    request['q'] is a search string.
    request['type'] is the type of request:
     - An integer for namespace
     - String 'content' for search in content
    """
    w = wiki_handler()
    # By default search in words
    if request.GET.get('type', 'content') == 'content':
        results = [ p for p in w.search_words(request.GET['q']) ]
    elif request.GET['type'] == 'references':
        page = w.get_page(request.GET['q'])
        results = page.getReferences()
    # Else search by namespace and name
    else:
        results = [ p for p in
            w.search_in_title(request.GET['q'], namespaces=request.GET.get('type', None)) ]

    return render(request, 'option.html', {
        'pages': results,
    })
Ejemplo n.º 17
0
def async_add_category(*args, **kwargs):
    w = wiki_handler()
    return w.add_category(*args, **kwargs)
Ejemplo n.º 18
0
def async_add_internal_link(*args, **kwargs):
    w = wiki_handler()
    return w.add_internal_link(*args, **kwargs)
Ejemplo n.º 19
0
from django.utils import unittest
from django.conf import settings
from wikipedia import Page
from core.handlers import wiki_handler
w = wiki_handler()


class add_category_TestCase(unittest.TestCase):

    def setUp(self):
        self.base_text = w.get_page().get()

    def tearDown(self):
        pass

    def get_by_name(self):
        p = w.get_page('Accueil')
        self.assertIsInstance(p, Page, "Method 'get_page' doesn't return a Page object.")

    def get_by_name(self):
        pass
Ejemplo n.º 20
0
def async_sub(*args, **kwargs):
    w = wiki_handler()
    return w.sub(*args, **kwargs)
Ejemplo n.º 21
0
def async_move_pages(*args, **kwargs):
    w = wiki_handler()
    return w.move_pages(*args, **kwargs)
Ejemplo n.º 22
0
def get_wiki_url(page, link=None):
    w = wiki_handler()
    return w.get_wiki_url(page, True)
Ejemplo n.º 23
0
def async_remove_category(*args, **kwargs):
    w = wiki_handler()
    return w.remove_category(*args, **kwargs)