Example #1
0
    def _create_url(
        self,
        site=None,
        content_object=None,
        manual_url="",
        relative_path="",
        phone="",
        mailto="",
        anchor="",
    ):
        if site is None:
            site = self.default_site

        url = UrlModel.objects.create(
            site=site,
            content_object=content_object,
            manual_url=manual_url,
            relative_path=relative_path,
            phone=phone,
            mailto=mailto,
            anchor=anchor,
            url_grouper=UrlGrouper.objects.create(),
        )
        if is_versioning_enabled():
            Version.objects.create(
                content=url,
                created_by=self.superuser,
                state=DRAFT,
                content_type_id=ContentType.objects.get_for_model(UrlModel).id,
            )

        return url
Example #2
0
    def test_select2_view(self):

        with self.login_user_context(self.superuser):
            response = self.client.get(admin_reverse(SELECT2_URLS, ), )

        result = [
            self.url.pk,
            self.url2.pk,
        ]
        text_result = []

        if is_versioning_enabled():
            # The following versions have draft content
            text_result.append(f"{self.url.internal_name} (Not published)")
            text_result.append(f'{self.url2.internal_name} (Not published)')
        else:
            text_result.append(f"{self.url.internal_name}")
            text_result.append(f"{self.url2.internal_name}")

        self.assertEqual(response.status_code, 200)
        self.assertEqual([a['id'] for a in response.json()['results']], result)
        self.assertEqual(
            [a['text'] for a in response.json()['results']],
            text_result,
        )
Example #3
0
 def change_view(self, request, object_id, form_url='', extra_context=None):
     extra_context = extra_context or {}
     # Provide additional context to the changeform
     extra_context['is_versioning_enabled'] = is_versioning_enabled()
     return super().change_view(
         request,
         object_id,
         form_url,
         extra_context=extra_context,
     )
Example #4
0
    def get_name(self):
        content = self.get_content(show_draft_content=True)
        name = getattr(content, 'internal_name', 'URL {}'.format(self.pk))
        if is_versioning_enabled() and content:
            from djangocms_versioning.constants import DRAFT
            version = content.versions.first()

            if version.state == DRAFT:
                return '{} (Not published)'.format(name)

        return name
Example #5
0
    def get_content(self, show_draft_content=False):
        qs = self.get_content_queryset()

        if show_draft_content and is_versioning_enabled():
            from djangocms_versioning.constants import DRAFT, PUBLISHED
            from djangocms_versioning.helpers import remove_published_where

            # Ensure that we are getting the latest valid content, the top most version can become
            # archived with a previous version re-published
            qs = remove_published_where(qs)
            qs = qs.filter(
                Q(versions__state=DRAFT)
                | Q(versions__state=PUBLISHED)).order_by('-versions__created')
        return qs.first()
Example #6
0
 def is_versioning_enabled(cls):
     return is_versioning_enabled()