diff --git a/readthedocs/core/templatetags/core_tags.py b/readthedocs/core/templatetags/core_tags.py index 3eb9e08beef..15405ca19b3 100644 --- a/readthedocs/core/templatetags/core_tags.py +++ b/readthedocs/core/templatetags/core_tags.py @@ -53,44 +53,6 @@ def make_document_url(project, version=None, page='', path=''): return resolve(project=project, version_slug=version, filename=filename) -@register.filter(is_safe=True) -def restructuredtext(value, short=False): - try: - from docutils.core import publish_parts - from docutils import ApplicationError - except ImportError: - if settings.DEBUG: - raise template.TemplateSyntaxError( - "Error in 'restructuredtext' filter: " - "The Python docutils library isn't installed.", - ) - return force_text(value) - else: - docutils_settings = { - 'raw_enabled': False, - 'file_insertion_enabled': False, - } - docutils_settings.update( - settings.RESTRUCTUREDTEXT_FILTER_SETTINGS, - ) - try: - parts = publish_parts( - source=force_bytes(value), - writer_name='html4css1', - settings_overrides=docutils_settings, - ) - except ApplicationError: - return force_text(value) - - out = force_text(parts['fragment']) - try: - if short: - out = out.split('\n')[0] - except IndexError: - pass - return mark_safe(out) - - @register.filter def get_project(slug): try: diff --git a/readthedocs/projects/forms.py b/readthedocs/projects/forms.py index fcfc470d12d..74837172a6b 100644 --- a/readthedocs/projects/forms.py +++ b/readthedocs/projects/forms.py @@ -174,6 +174,7 @@ class Meta: description = forms.CharField( validators=[ClassifierValidator(raises=ProjectSpamError)], required=False, + max_length=150, widget=forms.Textarea, ) diff --git a/readthedocs/projects/migrations/0055_change_help_text_description.py b/readthedocs/projects/migrations/0055_change_help_text_description.py new file mode 100644 index 00000000000..88c95d6dc31 --- /dev/null +++ b/readthedocs/projects/migrations/0055_change_help_text_description.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.12 on 2020-06-11 23:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0054_urlconf_blank'), + ] + + operations = [ + migrations.AlterField( + model_name='project', + name='description', + field=models.TextField(blank=True, help_text='Short description of this project', verbose_name='Description'), + ), + ] diff --git a/readthedocs/projects/models.py b/readthedocs/projects/models.py index 0214a93e846..3ce14ea972a 100644 --- a/readthedocs/projects/models.py +++ b/readthedocs/projects/models.py @@ -122,10 +122,7 @@ class Project(models.Model): description = models.TextField( _('Description'), blank=True, - help_text=_( - 'The reStructuredText ' - 'description of the project', - ), + help_text=_('Short description of this project'), ) repo = models.CharField( _('Repository URL'), diff --git a/readthedocs/rtd_tests/tests/test_core_tags.py b/readthedocs/rtd_tests/tests/test_core_tags.py index 18fe5098ca2..111be2cf0f6 100644 --- a/readthedocs/rtd_tests/tests/test_core_tags.py +++ b/readthedocs/rtd_tests/tests/test_core_tags.py @@ -92,20 +92,6 @@ def test_mkdocs_index_no_directory_urls(self): url = core_tags.make_document_url(proj, LATEST, 'index', 'index.html') self.assertEqual(url, self.pip_latest_url_index) - def test_restructured_text(self): - value = '*test*' - result = core_tags.restructuredtext(value) - self.assertIn('test', result) - - def test_restructured_text_invalid(self): - value = ( - '*******\n' - 'Test\n' - '****\n\n' - ) - result = core_tags.restructuredtext(value) - self.assertEqual(result, value) - def test_escapejson(self): tests = ( ({}, '{}'), diff --git a/readthedocs/templates/core/project_details.html b/readthedocs/templates/core/project_details.html index 205d296cd2a..694f4ddbf9c 100644 --- a/readthedocs/templates/core/project_details.html +++ b/readthedocs/templates/core/project_details.html @@ -79,7 +79,7 @@

{% trans "Build a version" %}

{% trans "Description" %}

- {{ project.description|restructuredtext }} + {{ project.description }}

{% endif %}