diff --git a/readthedocs/settings/base.py b/readthedocs/settings/base.py index 64f11e30a47..604c88f2564 100644 --- a/readthedocs/settings/base.py +++ b/readthedocs/settings/base.py @@ -248,7 +248,6 @@ def INSTALLED_APPS(self): # noqa 'readthedocs.notifications', 'readthedocs.integrations', 'readthedocs.analytics', - 'readthedocs.sphinx_domains', 'readthedocs.search', 'readthedocs.embed', 'readthedocs.telemetry', diff --git a/readthedocs/sphinx_domains/__init__.py b/readthedocs/sphinx_domains/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/readthedocs/sphinx_domains/admin.py b/readthedocs/sphinx_domains/admin.py deleted file mode 100644 index a92b5a30e58..00000000000 --- a/readthedocs/sphinx_domains/admin.py +++ /dev/null @@ -1,16 +0,0 @@ -"""Domain Admin classes.""" -from django.contrib import admin - -from .models import SphinxDomain - - -class SphinxDomainAdmin(admin.ModelAdmin): - list_filter = ('type',) - list_display = ('__str__', 'version', 'build') - search_fields = ('doc_name', 'name', 'project__slug', 'version__slug', 'build') - readonly_fields = ('created', 'modified') - raw_id_fields = ('project', 'version', 'html_file') - list_select_related = ('project', 'version', 'version__project') - - -admin.site.register(SphinxDomain, SphinxDomainAdmin) diff --git a/readthedocs/sphinx_domains/apps.py b/readthedocs/sphinx_domains/apps.py deleted file mode 100644 index b20999dbd13..00000000000 --- a/readthedocs/sphinx_domains/apps.py +++ /dev/null @@ -1,8 +0,0 @@ -"""Sphinx domains app.""" - -from django.apps import AppConfig - - -class SphinxDomainsConfig(AppConfig): - default_auto_field = "django.db.models.BigAutoField" - name = "readthedocs.sphinx_domains" diff --git a/readthedocs/sphinx_domains/migrations/0001_initial.py b/readthedocs/sphinx_domains/migrations/0001_initial.py deleted file mode 100644 index 19b2bbef34c..00000000000 --- a/readthedocs/sphinx_domains/migrations/0001_initial.py +++ /dev/null @@ -1,39 +0,0 @@ -# Generated by Django 1.11.20 on 2019-02-27 16:23 -import django.db.models.deletion -import django_extensions.db.fields -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('builds', '0006_add_config_field'), - ('projects', '0040_increase_path_max_length'), - ] - - operations = [ - migrations.CreateModel( - name='SphinxDomain', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')), - ('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')), - ('commit', models.CharField(max_length=255, null=True, verbose_name='Commit')), - ('domain', models.CharField(max_length=255, verbose_name='Domain')), - ('name', models.CharField(max_length=255, verbose_name='Name')), - ('display_name', models.CharField(max_length=255, verbose_name='Display Name')), - ('type', models.CharField(max_length=255, verbose_name='Type')), - ('doc_name', models.CharField(max_length=255, verbose_name='Doc Name')), - ('anchor', models.CharField(max_length=255, verbose_name='Anchor')), - ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sphinx_domains', to='projects.Project')), - ('version', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sphinx_domains', to='builds.Version', verbose_name='Version')), - ], - options={ - 'ordering': ('-modified', '-created'), - 'get_latest_by': 'modified', - 'abstract': False, - }, - ), - ] diff --git a/readthedocs/sphinx_domains/migrations/0002_increase_max_length.py b/readthedocs/sphinx_domains/migrations/0002_increase_max_length.py deleted file mode 100644 index 8901f8d3a01..00000000000 --- a/readthedocs/sphinx_domains/migrations/0002_increase_max_length.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 1.11.20 on 2019-02-27 16:50 -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sphinx_domains', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='sphinxdomain', - name='anchor', - field=models.CharField(max_length=4092, verbose_name='Anchor'), - ), - migrations.AlterField( - model_name='sphinxdomain', - name='display_name', - field=models.CharField(max_length=4092, verbose_name='Display Name'), - ), - migrations.AlterField( - model_name='sphinxdomain', - name='doc_name', - field=models.CharField(max_length=4092, verbose_name='Doc Name'), - ), - migrations.AlterField( - model_name='sphinxdomain', - name='name', - field=models.CharField(max_length=4092, verbose_name='Name'), - ), - ] diff --git a/readthedocs/sphinx_domains/migrations/0003_additional_indexed_fields.py b/readthedocs/sphinx_domains/migrations/0003_additional_indexed_fields.py deleted file mode 100644 index dafc3c53c4d..00000000000 --- a/readthedocs/sphinx_domains/migrations/0003_additional_indexed_fields.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 1.11.20 on 2019-03-01 14:25 -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sphinx_domains', '0002_increase_max_length'), - ] - - operations = [ - migrations.AddField( - model_name='sphinxdomain', - name='doc_display', - field=models.CharField(max_length=4092, null=True, verbose_name='Doc Display'), - ), - migrations.AddField( - model_name='sphinxdomain', - name='type_display', - field=models.CharField(max_length=4092, null=True, verbose_name='Type Display'), - ), - ] diff --git a/readthedocs/sphinx_domains/migrations/0004_add-build-field.py b/readthedocs/sphinx_domains/migrations/0004_add-build-field.py deleted file mode 100644 index dcb6f47ce6d..00000000000 --- a/readthedocs/sphinx_domains/migrations/0004_add-build-field.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 1.11.21 on 2019-06-13 18:03 -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sphinx_domains', '0003_additional_indexed_fields'), - ] - - operations = [ - migrations.AddField( - model_name='sphinxdomain', - name='build', - field=models.IntegerField(null=True, verbose_name='Build id'), - ), - ] diff --git a/readthedocs/sphinx_domains/migrations/0005_htmlfile-sphinx-domain-integration.py b/readthedocs/sphinx_domains/migrations/0005_htmlfile-sphinx-domain-integration.py deleted file mode 100644 index 4c1b5d010a9..00000000000 --- a/readthedocs/sphinx_domains/migrations/0005_htmlfile-sphinx-domain-integration.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 1.11.20 on 2019-06-25 23:18 -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('projects', '0043_add-build-field'), - ('sphinx_domains', '0004_add-build-field'), - ] - - operations = [ - migrations.AddField( - model_name='sphinxdomain', - name='html_file', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sphinx_domains', to='projects.HTMLFile'), - ), - ] diff --git a/readthedocs/sphinx_domains/migrations/0006_update_timestamp_fields.py b/readthedocs/sphinx_domains/migrations/0006_update_timestamp_fields.py deleted file mode 100644 index f7b2193a80b..00000000000 --- a/readthedocs/sphinx_domains/migrations/0006_update_timestamp_fields.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 2.2.14 on 2020-07-13 20:00 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('sphinx_domains', '0005_htmlfile-sphinx-domain-integration'), - ] - - operations = [ - migrations.AlterModelOptions( - name='sphinxdomain', - options={'get_latest_by': 'modified'}, - ), - ] diff --git a/readthedocs/sphinx_domains/migrations/0007_alter_sphinxdomain_id.py b/readthedocs/sphinx_domains/migrations/0007_alter_sphinxdomain_id.py deleted file mode 100644 index cf61d3631d3..00000000000 --- a/readthedocs/sphinx_domains/migrations/0007_alter_sphinxdomain_id.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2022-08-08 20:23 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("sphinx_domains", "0006_update_timestamp_fields"), - ] - - operations = [ - migrations.AlterField( - model_name="sphinxdomain", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - ] diff --git a/readthedocs/sphinx_domains/migrations/__init__.py b/readthedocs/sphinx_domains/migrations/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/readthedocs/sphinx_domains/models.py b/readthedocs/sphinx_domains/models.py deleted file mode 100644 index 5c0d9f36504..00000000000 --- a/readthedocs/sphinx_domains/models.py +++ /dev/null @@ -1,106 +0,0 @@ -""" -Sphinx Domain modeling. - -http://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html -""" - -from django.db import models -from django.utils.translation import gettext_lazy as _ - -from django_extensions.db.models import TimeStampedModel - -from readthedocs.builds.models import Version -from readthedocs.core.resolver import resolve -from readthedocs.projects.models import Project, HTMLFile -from readthedocs.projects.querysets import RelatedProjectQuerySet - - -class SphinxDomain(TimeStampedModel): - - """ - Information from a project about it's Sphinx domains. - - This captures data about API objects that exist in that codebase. - """ - - project = models.ForeignKey( - Project, - related_name='sphinx_domains', - on_delete=models.CASCADE, - ) - version = models.ForeignKey( - Version, - verbose_name=_('Version'), - related_name='sphinx_domains', - on_delete=models.CASCADE, - ) - html_file = models.ForeignKey( - HTMLFile, - related_name='sphinx_domains', - null=True, - on_delete=models.CASCADE, - ) - commit = models.CharField(_('Commit'), max_length=255, null=True) - build = models.IntegerField(_('Build id'), null=True) - - domain = models.CharField( - _('Domain'), - max_length=255, - ) - name = models.CharField( - _('Name'), - max_length=4092, - ) - display_name = models.CharField( - _('Display Name'), - max_length=4092, - ) - type = models.CharField( - _('Type'), - max_length=255, - ) - type_display = models.CharField( - _('Type Display'), - max_length=4092, - null=True, - ) - doc_name = models.CharField( - _('Doc Name'), - max_length=4092, - ) - doc_display = models.CharField( - _('Doc Display'), - max_length=4092, - null=True, - ) - anchor = models.CharField( - _('Anchor'), - max_length=4092, - ) - objects = RelatedProjectQuerySet.as_manager() - - def __str__(self): - ret = f''' - SphinxDomain [{self.project.slug}:{self.version.slug}] - [{self.domain}:{self.type}] {self.name} -> - {self.doc_name} - '''.strip() - if self.anchor: - ret += f'#{self.anchor}' - return ret - - @property - def role_name(self): - return f'{self.domain}:{self.type}' - - @property - def docs_url(self): - path = self.doc_name - if self.anchor: - path += f'#{self.anchor}' - full_url = resolve( - project=self.project, - version_slug=self.version.slug, - filename=path, - ) - return full_url