From 828312e63a47161d0f9f7b60fa32278aa87f388e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrico=20Tr=C3=B6ger?= Date: Sun, 27 Sep 2020 23:50:30 +0200 Subject: [PATCH] Add LatestVersion support for Geany-Plugins Use the Geany-Plugins version information on the download page for the release notes link. --- latest_version/context_processors.py | 11 +++++++++-- .../fixtures/first_plugins_version.json | 12 ++++++++++++ .../migrations/0002_latestversion_name.py | 19 +++++++++++++++++++ latest_version/models.py | 9 ++------- page_content/download/releases.md | 3 +++ 5 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 latest_version/fixtures/first_plugins_version.json create mode 100644 latest_version/migrations/0002_latestversion_name.py diff --git a/latest_version/context_processors.py b/latest_version/context_processors.py index 47c27ca..1590e2f 100644 --- a/latest_version/context_processors.py +++ b/latest_version/context_processors.py @@ -22,7 +22,13 @@ # ---------------------------------------------------------------------- @cache_function(CACHE_TIMEOUT_1HOUR, ignore_arguments=True) def latest_version(request): - geany_latest_version = LatestVersion.objects.get(id=1) + latest_versions = LatestVersion.objects.all() + latest_versions_by_name = { + latest_version.name: latest_version + for latest_version + in latest_versions} + geany_latest_version = latest_versions_by_name.get('Geany') + geany_plugins_latest_version = latest_versions_by_name.get('Geany-Plugins') # Geany release_versions_provider = ReleaseVersionsProvider( @@ -32,10 +38,11 @@ def latest_version(request): # Geany-Plugins geany_plugins_release_versions_provider = ReleaseVersionsProvider( settings.LATEST_VERSION_PLUGINS_RELEASES_DIRECTORY, - fallback_version=geany_latest_version.version) + fallback_version=geany_plugins_latest_version.version) plugins_release_versions = geany_plugins_release_versions_provider.provide() return dict( geany_latest_version=geany_latest_version, + geany_plugins_latest_version=geany_plugins_latest_version, release_versions=release_versions, plugins_release_versions=plugins_release_versions) diff --git a/latest_version/fixtures/first_plugins_version.json b/latest_version/fixtures/first_plugins_version.json new file mode 100644 index 0000000..cae47a7 --- /dev/null +++ b/latest_version/fixtures/first_plugins_version.json @@ -0,0 +1,12 @@ +[ + { + "model": "latest_version.latestversion", + "pk": 2, + "fields": { + "name": "Geany-Plugins", + "version": "1.36.0", + "github_link": "/commits/1.36.0", + "release_date": "2020-09-28T14:12:00Z" + } + } +] diff --git a/latest_version/migrations/0002_latestversion_name.py b/latest_version/migrations/0002_latestversion_name.py new file mode 100644 index 0000000..7ebf7f2 --- /dev/null +++ b/latest_version/migrations/0002_latestversion_name.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2.16 on 2020-09-27 21:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('latest_version', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='latestversion', + name='name', + field=models.CharField(default='Geany', max_length=50, unique=True), + preserve_default=False, + ), + ] diff --git a/latest_version/models.py b/latest_version/models.py index d972b95..0fc8cf0 100644 --- a/latest_version/models.py +++ b/latest_version/models.py @@ -17,6 +17,7 @@ class LatestVersion(models.Model): + name = models.CharField(max_length=50, unique=True) version = models.CharField(max_length=50, verbose_name='Latest Geany version') release_date = models.DateTimeField() github_link = models.CharField( @@ -28,16 +29,10 @@ class Meta: verbose_name = 'Latest Version' verbose_name_plural = 'Latest Version' - # ---------------------------------------------------------------------- - def save(self, *args, **kwargs): # pylint: disable=signature-differs - """Save but replace the existing row instead of adding a new one""" - self.id = 1 # pylint: disable=invalid-name,attribute-defined-outside-init - super().save(*args, **kwargs) - # ---------------------------------------------------------------------- def delete(self, using=None, keep_parents=False): """Never delete anything""" # ---------------------------------------------------------------------- def __str__(self): - return 'Geany {}'.format(self.version) + return '{} {}'.format(self.name, self.version) diff --git a/page_content/download/releases.md b/page_content/download/releases.md index 354faa5..dd23e74 100644 --- a/page_content/download/releases.md +++ b/page_content/download/releases.md @@ -22,6 +22,8 @@ Source (tar.bz2) | [{{ plugins_release_versions.source_bzip2_version }}](https: Windows | [{{ plugins_release_versions.windows_version }}](https://plugins.geany.org/geany-plugins/{{ plugins_release_versions.windows_version }}) | [{{ plugins_release_versions.windows_version }}.sig](https://plugins.geany.org/geany-plugins/{{ plugins_release_versions.windows_version }}.sig) ([Instructions][4]) | [frlan-pubkey.txt][6] Mac OSX | (included in `{{ release_versions.macos_version }}` above) | - | - +[Release notes for Geany-Plugins {{ geany_plugins_latest_version.version }}][7] + For more details, see the [plugin page][5]. @@ -42,3 +44,4 @@ For older versions, please see https://download.geany.org/. [4]: /support/verify-gpg-signature/ [5]: /support/plugins/ [6]: https://download.geany.org/frlan-pubkey.txt +[7]: https://raw.githubusercontent.com/geany/geany-plugins/{{ geany_plugins_latest_version.version }}/NEWS