def setUp(self): self.client = Client() try: Page.objects.get(name='home') except Page.DoesNotExist: home = Page(name='home', title='home') home.save()
def test_unauthed(self): request = self.get_request() page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 self.assertTrue(page.has_view_permission(request))
def page_create(request, page_id=None): if page_id: page = get_object_or_404(Page, pk=page_id) else: page = Page() if request.method == 'POST': form = PageForm(request.POST, instance=page) serial = MakeRndCode() serialCd = serial.mkrnd() if form.is_valid(): page = form.save(commit=False) page.serialcd = serialCd #response = HttpResponse('test') response = redirect('cms:member_list') response['location'] += '?S=' + serialCd + '&case=1' #response.set_cookie('serial_cd', serialCd) page.save() #return redirect('cms:member_list') #return render(request, 'cms/member_list.html') return response else: form = PageForm(instance=page) #初回きた時はGetなので、そのままindexを渡す #POSTでリクエストがきたら、Saveして、メンバーリストに飛ばす #ここからはクッキーでIDを渡す #DBにはPageIDを持つ return render(request, 'cms/index.html', dict(form=form))
def get_or_create_root(self): """ Creates the root node used to store all page types for the current site if it doesn't exist. """ root_page = PageType.get_root_page(site=self._site) if not root_page: root_page = Page( publisher_is_draft=True, in_navigation=False, is_page_type=True, ) root_page.set_tree_node(self._site) root_page.save() if not root_page.has_translation(self._language): api.create_title( language=self._language, title=ugettext('Page Types'), page=root_page, slug=PAGE_TYPES_ID, path=PAGE_TYPES_ID, ) return root_page.node
def test_public_for_all_staff_assert_num_queries(self): request = self.get_request() request.user.is_staff = True page = Page() page.pk = 1 with self.assertNumQueries(0): page.has_view_permission(request)
def add_tree(self, count, root=None, depth=1): CMS_GTE_35 = hasattr(Page, 'node') for node in range(0, count): new_page = Page( created_by='script', changed_by='script', in_navigation=True, template='INHERIT', ) if CMS_GTE_35: parent_node = root.node if root else None new_page.set_tree_node(site=self.site, target=parent_node, position='last-child') new_page.save() else: new_page.site = self.site new_page.parent_id = getattr(root, 'pk', None) # This saves the page new_page = Page.add_root(instance=new_page) if root: new_page = new_page.move(target=root.reload(), pos='last-child') try: node_path = new_page.node.path except AttributeError: node_path = new_page.path for language in self.languages: new_page.title_set.create( language=language, title=node_path, slug=node_path, path='/'.join(self.path_regex.findall(node_path)), ) new_page.update_languages(self.languages) if self.base_page: for ph in self.base_page.placeholders.all(): new_ph = new_page.placeholders.create(slot=ph.slot) for language in self.languages: plugins = ph.get_plugins_list(language) if plugins: ph.copy_plugins(new_ph, language) else: new_page.rescan_placeholders() self.stdout.write("Created page %s" % node_path) if depth <= self.max_depth and bool(random.getrandbits(1)): self.add_tree(count=self.max_count_children, root=new_page, depth=depth + 1)
def create_page(self, parent_page=None, user=None, position="last-child", title=None, site=1, published=False, in_navigation=False, moderate=False, language=None, title_extra=None, **extra): """ Common way for page creation with some checks """ _thread_locals.user = user if not language: language = settings.LANGUAGES[0][0] if settings.CMS_SITE_LANGUAGES.get(site, False): language = settings.CMS_SITE_LANGUAGES[site][0] site = Site.objects.get(pk=site) page_data = { 'site': site, 'template': 'nav_playground.html', 'published': published, 'in_navigation': in_navigation, } if user: page_data['created_by'] = user page_data['changed_by'] = user if parent_page: page_data['parent'] = parent_page page_data.update(extra) page = Page(**page_data) if parent_page: page.insert_at(self.reload(parent_page), position) page.save() if settings.CMS_MODERATOR and user: page.pagemoderator_set.create(user=user) if not title: title = 'test page %d' % self.counter slug = 'test-page-%d' % self.counter else: slug = slugify(title) self.counter = self.counter + 1 if not title_extra: title_extra = {} self.create_title(title=title, slug=slug, language=language, page=page, **title_extra) del _thread_locals.user return page
def test_public_for_all(self): user = User.objects.create_user('user', '*****@*****.**', 'user') request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 self.assertTrue(page.has_view_permission(request))
def test_unauthed_no_access(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): request = self.get_request() page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 self.assertFalse(page.has_view_permission(request))
def handle(self, *args, **options): pages = [] for i in range(0, 100): pages.append( Page(name=lorem.sentence(), slug=uuid.uuid4(), body=lorem.text())) Page.objects.bulk_create(pages)
def test_public_for_all_staff_assert_num_queries(self): request = self.get_request() request.user.is_staff = True page = Page() page.pk = 1 pages = [page] with self.assertNumQueries(0): get_visible_pages(request, pages)
def test_public_for_all_staff(self): request = self.get_request() request.user.is_staff = True page = Page() page.pk = 1 pages = [page] result = get_visible_pages(request, pages) self.assertEqual(result, [1])
def make_page(name, order, **kwargs): defaults = dict( name=name, order=order, slug=slugify(name), ) defaults.update(kwargs) return clean_and_save(Page(**defaults))
def update(self): import feedparser from time import mktime from datetime import datetime from slugify import slugify from django.contrib.sites.models import Site from cms.models import Page, Title from cms.plugins.text.models import Text try: p_last = self.pages.latest('publication_date') except Page.DoesNotExist: p_last = None try: for e in feedparser.parse(self.url)['entries']: date = e.get('published_parsed') title = e.get('title') body = e.get('summary') url = e.get('link') if date and title and body: date = datetime.fromtimestamp(mktime(date)) if p_last and date <= p_last.publication_date: continue p=Page(site=Site.objects.all()[0], in_navigation=False, published=True, template='page-full.html') p.publication_date = date if self.parent_page: p.parent = self.parent_page p.save() self.pages.add(p) self.save() t=Title(language='en', title=title, slug='%s-%s' % (slugify(title), p.pk), page=p) t.save() pl=p.placeholders.get(slot='page') if url: body = u'%s<p><a href="%s">Lire la suite de l\'article…</a></p>' % (body, url) txt=Text(body=body, language='en', plugin_type='TextPlugin') txt.save() pl.cmsplugin_set.add(txt) pl.save() except: pass self.update_last = datetime.now() self.save()
def test_unauthed(self): request = self.get_request() page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] result = get_visible_pages(request, pages) self.assertEqual(result, [1])
def test_authed_no_access(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): user = User.objects.create_user('user', '*****@*****.**', 'user') request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 self.assertFalse(page.has_view_permission(request))
def test_authed_basic_perm(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): user = User.objects.create_user('user', '*****@*****.**', 'user') user.user_permissions.add(Permission.objects.get(codename='view_page')) request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 self.assertTrue(page.has_view_permission(request))
def test_unauthed_no_access(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): request = self.get_request() page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] result = get_visible_pages(request, pages) self.assertEqual(result, [])
def test_unauthed_no_access_num_queries(self): site = Site() site.pk = 1 request = self.get_request() page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 with self.assertNumQueries(1): page.has_view_permission(request)
def test_public_for_all(self): user = User.objects.create_user('user', '*****@*****.**', 'user') request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] result = get_visible_pages(request, pages) self.assertEqual(result, [1])
def test_global_permission(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): user = User.objects.create_user('user', '*****@*****.**', 'user') GlobalPagePermission.objects.create(can_view=True, user=user) request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 self.assertTrue(page.has_view_permission(request))
def test_authed_no_access(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): user = User.objects.create_user('user', '*****@*****.**', 'user') request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] result = get_visible_pages(request, pages) self.assertEqual(result, [])
def test_unauthed_no_access_num_queries(self): site = Site() site.pk = 1 request = self.get_request() page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] with self.assertNumQueries(1): get_visible_pages(request, pages, site)
def test_global_permission(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): user = User.objects.create_user('user', '*****@*****.**', 'user') GlobalPagePermission.objects.create(can_view=True, user=user) request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] result = get_visible_pages(request, pages) self.assertEqual(result, [1])
def test_authed_basic_perm(self): with SettingsOverride(CMS_PUBLIC_FOR='staff'): user = User.objects.create_user('user', '*****@*****.**', 'user') user.user_permissions.add(Permission.objects.get(codename='view_page')) request = self.get_request(user) page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] result = get_visible_pages(request, pages) self.assertEqual(result, [1])
def test_unauthed_num_queries(self): request = self.get_request() site = Site() site.pk = 1 page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 with self.assertNumQueries(1): """ The query is: PagePermission query for affected pages """ page.has_view_permission(request)
def setUp(self): settings.APPEND_SLASH = False self.site = Site.objects.get_current() page = Page() page.site = self.site page.save() page.publish() self.page = page title = Title(title="Hello world!") title.page = page title.language = u'en' title.save()
def test_unauthed_num_queries(self): request = self.get_request() site = Site() site.pk = 1 page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] with self.assertNumQueries(1): """ The query is: PagePermission query for affected pages global is not executed because it's lazy """ get_visible_pages(request, pages, site)
def test_public_for_all_num_queries(self): user = User.objects.create_user('user', '*****@*****.**', 'user') request = self.get_request(user) site = Site() site.pk = 1 page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 pages = [page] with self.assertNumQueries(2): """ The queries are: PagePermission query for affected pages GlobalpagePermission query for user """ get_visible_pages(request, pages, site)
def test_public_for_all_num_queries(self): user = User.objects.create_user('user', '*****@*****.**', 'user') request = self.get_request(user) site = Site() site.pk = 1 page = Page() page.pk = 1 page.level = 0 page.tree_id = 1 with self.assertNumQueries(3): """ The queries are: The current Site PagePermission query for affected pages GlobalpagePermission query for user """ page.has_view_permission(request)