diff --git a/CHANGELOG.md b/CHANGELOG.md
index 79b1660fe7d..ed4b5f8493f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,21 @@
## [Unreleased]
+### Added
+
+- Add games category
+
### Removed
- Dropped Node.js 7 support and require Node.js 8+
+- Dropped support for Nextcloud 9 and 10:
+ - owncloud tag in info.xml will not be migrated to nextcloud tags anymore
+ - ocsid will not be parsed anymore and was removed from the info.xsd
+ - old categories will not be migrated anymore (tool, game, productivity, other)
+ - presence of owncloud tag will not be validated anymore for apps depending on 9 and 10
+ - v0 API was removed
+ - nextcloudrelease.json fixtures for 9 and 10 were removed
+ - Nextcloud 10 apps can not be generated anymore
## [2.0.0] - 2017-06-02
diff --git a/docs/developer.rst b/docs/developer.rst
index ef7d286b835..1d712e7e170 100644
--- a/docs/developer.rst
+++ b/docs/developer.rst
@@ -166,8 +166,6 @@ A minimum valid **info.xml** would look like this:
multimedia
https://github.com/nextcloud/news/issues
-
-
@@ -213,8 +211,6 @@ A full blown example would look like this (needs to be utf-8 encoded):
curl
SimpleXML
iconv
-
-
@@ -243,7 +239,6 @@ A full blown example would look like this (needs to be utf-8 encoded):
A\Php\Class
- 123
OCA\Theming\Settings\Admin
OCA\Theming\Settings\Section
@@ -400,14 +395,6 @@ dependencies/nextcloud
* if absent white-listed owncloud versions will be taken from the owncloud element (see below)
* must contain a **min-version** attribute (maximum 3 digits separated by dots)
* can contain a **max-version** attribute (maximum 3 digits separated by dots)
-dependencies/owncloud
- * optional
- * used for app migration period (Nextcloud 9 and 10)
- * must contain a **min-version** attribute (**9.0** or **9.1**)
- * can contain a **max-version** attribute (**9.0** or **9.1**)
- * 9.0 will be migrated to Nextcloud 9
- * 9.1 will be migrated to Nextcloud 10
- * All other versions will be ignored
background-jobs/job
* optional
* must contain a php class which is run as background jobs
@@ -440,13 +427,6 @@ commands/command
* optional
* must contain a php class which is registered as occ command
* will not be used, only validated
-ocsid
- * optional
- * used only to identify the app for Nextcloud versions 9 and 10
- * equal to the id on the old app store, e.g. **https://apps.owncloud.com/content/show.php/Spreed.ME?content=174436** would use **174436**
- * if not provided in your info.xml then the app will not be available for Nextcloud 9 and 10
- * if you do not have an id yet, create an app on the apps.owncloud.com app store and use that id. This ensures that the id is unique and unused. You can delete the app afterwards if you do not want to publish your app on both stores.
- * deprecated; Support will be moved once 9 an 10 run out of support
activity/settings/setting
* optional
* must contain a php class which implements OCP\Activity\ISetting and is used to add additional settings ui elements to the activity app
diff --git a/docs/prodinstall.rst b/docs/prodinstall.rst
index 07eca6742ff..2c50d6099fc 100644
--- a/docs/prodinstall.rst
+++ b/docs/prodinstall.rst
@@ -202,9 +202,6 @@ To get your instance running in production you need to create your production se
# Additional variables that are used for generating apps
# APP_SCAFFOLDING_PROFILES = {
- # 10: {
- # 'owncloud_version': '9.1'
- # },
# 11: {
# 'owncloud_version': '9.2'
# }
diff --git a/docs/restapi.rst b/docs/restapi.rst
index 42d88a45288..3473d5b8e67 100644
--- a/docs/restapi.rst
+++ b/docs/restapi.rst
@@ -30,15 +30,6 @@ You have to design your app with these things in mind:
* Don't limit your app to the currently available attributes. New ones might be added. If you don't handle them, ignore them
* Use a library to compare versions, ideally one that uses semantic versioning
-Legacy API
-----------
-
-Nextcloud 9 and 10 use the old App Store at https://apps.owncloud.com which exposes an XML API called OCS. This API is available under **https://apps.nextcloud.com/api/v0** and can be added to your Nextcloud installation by adding the following paramter to **config/config.php**::
-
- 'appstoreurl' => 'https://apps.nextcloud.com/api/v0',
-
-.. note:: The API is undocumented on purpose and can be removed at any time so do not rely on it
-
Authentication
--------------
diff --git a/nextcloudappstore/api/urls.py b/nextcloudappstore/api/urls.py
index 99492551727..3a5f60e2999 100644
--- a/nextcloudappstore/api/urls.py
+++ b/nextcloudappstore/api/urls.py
@@ -1,8 +1,6 @@
from django.conf.urls import url, include
urlpatterns = [
- url(r'^v0/', include('nextcloudappstore.api.v0.urls',
- namespace='v0')),
url(r'^v1/', include('nextcloudappstore.api.v1.urls',
namespace='v1')),
]
diff --git a/nextcloudappstore/api/v0/__init__.py b/nextcloudappstore/api/v0/__init__.py
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/nextcloudappstore/api/v0/urls.py b/nextcloudappstore/api/v0/urls.py
deleted file mode 100644
index 79f548ba7da..00000000000
--- a/nextcloudappstore/api/v0/urls.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from django.conf.urls import url
-
-from nextcloudappstore.api.v0.views import categories, apps, app, download
-
-urlpatterns = [
- url(r'^content/categories/?$', categories, name='categories'),
- url(r'^content/data/?$', apps, name='apps'),
- url(r'^content/data/(?P[\w]*)/?$', app, name='app'),
- url(r'^content/download/(?P[\w]*)/1/?$', download,
- name='download'),
-]
diff --git a/nextcloudappstore/api/v0/views.py b/nextcloudappstore/api/v0/views.py
deleted file mode 100644
index 4645ba3d732..00000000000
--- a/nextcloudappstore/api/v0/views.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from django.http import Http404
-from django.shortcuts import render, get_object_or_404
-
-from nextcloudappstore.core.models import App, Category
-
-
-def transform_version(version: str) -> str:
- if version.startswith('9x0'):
- return '9.0.0'
- elif version.startswith('9x1'):
- return '10.0.0'
- else:
- return '11.0.0'
-
-
-def categories(request):
- return render(request, 'api/v0/categories.xml', {
- 'categories': Category.objects.all()
- }, content_type='application/xml')
-
-
-def in_category(app, category):
- categories = app.categories.all()
- for cat in categories:
- if cat.ocsid == category:
- return True
- return False
-
-
-def apps(request):
- version = transform_version(request.GET.get('version'))
- category = request.GET.get('categories', None)
- compatible_apps = App.objects.get_compatible(version)
- apps = filter(lambda a: a.ocsid is not None, compatible_apps)
- if category is not None:
- apps = filter(lambda app: in_category(app, category), apps)
- return render(request, 'api/v0/apps.xml', {
- 'apps': list(apps),
- 'request': request,
- 'version': version
- }, content_type='application/xml')
-
-
-def app(request, id):
- version = transform_version(request.GET.get('version'))
- app = get_object_or_404(App, ocsid=id)
- return render(request, 'api/v0/app.xml', {
- 'app': app,
- 'request': request,
- 'version': version
- }, content_type='application/xml')
-
-
-def download(request, id):
- version = transform_version(request.GET.get('version'))
- app = get_object_or_404(App, ocsid=id)
- releases = app.compatible_releases(version)
- if len(releases) == 0:
- raise Http404('No release downloads found')
- return render(request, 'api/v0/download.xml', {
- 'download': releases[0].download
- }, content_type='application/xml')
diff --git a/nextcloudappstore/api/v1/release/importer.py b/nextcloudappstore/api/v1/release/importer.py
index 05b8d4337dd..c27da61f90c 100644
--- a/nextcloudappstore/api/v1/release/importer.py
+++ b/nextcloudappstore/api/v1/release/importer.py
@@ -241,8 +241,7 @@ def __init__(self, release_importer: AppReleaseImporter,
'summary': l10n_importer,
'description': l10n_importer,
'categories': category_importer,
- 'authors': author_importer,
- 'ocsid': default_attribute_importer,
+ 'authors': author_importer
}, {'id'})
def _get_object(self, key: str, value: Any, obj: Any) -> Any:
diff --git a/nextcloudappstore/api/v1/release/info.xsd b/nextcloudappstore/api/v1/release/info.xsd
index 3fbcc7fe1e2..43684a5832c 100644
--- a/nextcloudappstore/api/v1/release/info.xsd
+++ b/nextcloudappstore/api/v1/release/info.xsd
@@ -45,8 +45,6 @@
minOccurs="0" maxOccurs="1"/>
-
-
-
-
diff --git a/nextcloudappstore/api/v1/release/parser.py b/nextcloudappstore/api/v1/release/parser.py
index 7283e990f1a..af141ef36c9 100644
--- a/nextcloudappstore/api/v1/release/parser.py
+++ b/nextcloudappstore/api/v1/release/parser.py
@@ -271,7 +271,6 @@ def parse_app_metadata(xml: str, schema: str, pre_xslt: str,
transformed_doc = transform(pre_transformed_doc) # type: ignore
mapped = element_to_dict(transformed_doc.getroot()) # type: ignore
validate_english_present(mapped)
- validate_pre_11(mapped, doc)
fix_partial_translations(mapped)
return mapped
@@ -304,23 +303,6 @@ def validate_database(xml: str, schema: str, pre_xslt: str) -> None:
raise InvalidAppMetadataXmlException(msg)
-def validate_pre_11(info: Dict, doc: Any) -> None:
- """
- Apps before 11 need to provide an owncloud min-version tag to run
- :param info: the transformed and parsed info xml
- :param doc: the original xml document
- :raises: InvalidAppMetadataXmlException if no owncloud min-version is
- present for apps with min-version 9 or 10
- """
- min_version = Version(info['app']['release']['platform_min_version'])
-
- test_xpath = 'dependencies/owncloud'
- if min_version < Version('11.0.0') and len(doc.xpath(test_xpath)) == 0:
- msg = ' tag is required for apps that run on Nextcloud 9 ' \
- 'and 10'
- raise InvalidAppMetadataXmlException(msg)
-
-
def validate_english_present(info: Dict) -> None:
"""
Validates that name, summary and description are present in english
diff --git a/nextcloudappstore/api/v1/release/pre-info.xslt b/nextcloudappstore/api/v1/release/pre-info.xslt
index 61a19b3cb01..e6624d477e0 100644
--- a/nextcloudappstore/api/v1/release/pre-info.xslt
+++ b/nextcloudappstore/api/v1/release/pre-info.xslt
@@ -23,11 +23,7 @@
-
-
- tools
-
-
+
@@ -37,7 +33,6 @@
-
@@ -101,20 +96,6 @@
-
-
-
- tools
-
-
- organization
-
-
-
-
-
-
-
@@ -133,49 +114,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/data/archives/full.tar.gz b/nextcloudappstore/api/v1/tests/data/archives/full.tar.gz
index f37ebe7bd8b..cd1aef1fb0a 100644
Binary files a/nextcloudappstore/api/v1/tests/data/archives/full.tar.gz and b/nextcloudappstore/api/v1/tests/data/archives/full.tar.gz differ
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/11.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/11.xml
deleted file mode 100644
index 8635192f595..00000000000
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/11.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- news
- News
- An RSS/Atom feed reader
- An RSS/Atom feed reader
- 8.8.2
- agpl
- Bernhard Posselt
- multimedia
- https://github.com/nextcloud/news/issues
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/9and10.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/9and10.xml
deleted file mode 100644
index f0294318a1e..00000000000
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/9and10.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- news
- News
- An RSS/Atom feed reader
- An RSS/Atom feed reader
- 8.8.2
- agpl
- Bernhard Posselt
- multimedia
- https://github.com/nextcloud/news/issues
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/9and10invalid.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/9and10invalid.xml
deleted file mode 100644
index 5355b503371..00000000000
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/9and10invalid.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- news
- News
- An RSS/Atom feed reader
- An RSS/Atom feed reader
- 8.8.2
- agpl
- Bernhard Posselt
- multimedia
- https://github.com/nextcloud/news/issues
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping.xml
deleted file mode 100644
index 43bc54ed0da..00000000000
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- news
- News
- An RSS/Atom feed reader
- 8.8.2
- agpl
- Bernhard Posselt
- productivity
- tool
- https://github.com/nextcloud/news/issues
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping_game.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping_game.xml
deleted file mode 100644
index d214f6077df..00000000000
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping_game.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- news
- News
- An RSS/Atom feed reader
- 8.8.2
- agpl
- Bernhard Posselt
- game
- https://github.com/nextcloud/news/issues
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping_tool.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping_tool.xml
deleted file mode 100644
index efeede5da7d..00000000000
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/category_mapping_tool.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- news
- News
- An RSS/Atom feed reader
- 8.8.2
- agpl
- Bernhard Posselt
- other
- https://github.com/nextcloud/news/issues
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/digits.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/digits.xml
index 024f82f8c70..72edf7fe788 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/digits.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/digits.xml
@@ -9,6 +9,6 @@
multimedia
https://github.com/nextcloud/news/issues
-
+
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/full.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/full.xml
index afbcc92fcc9..3ed5133b7e6 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/full.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/full.xml
@@ -67,7 +67,7 @@
iconv
-
+
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/fullimport.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/fullimport.xml
index d0d1ef644af..1e18ceff48f 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/fullimport.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/fullimport.xml
@@ -67,7 +67,7 @@
iconv
-
+
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/minimal.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/minimal.xml
index 8aa1a54a2bf..62d27ef85ef 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/minimal.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/minimal.xml
@@ -10,6 +10,6 @@
multimedia
https://github.com/nextcloud/news/issues
-
+
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/news.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/news.xml
index 1a4a6f5dddf..885e0f03378 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/news.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/news.xml
@@ -22,7 +22,7 @@
-
+
pgsql
sqlite
@@ -56,5 +56,4 @@
OCA\News\Hooks\User::deleteUser
- 168040
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/prerelease.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/prerelease.xml
index 8a0d80c5b46..b5699032257 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/prerelease.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/prerelease.xml
@@ -10,6 +10,6 @@
multimedia
https://github.com/nextcloud/news/issues
-
+
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/repair-and-jobs.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/repair-and-jobs.xml
index 3c930acde5a..8b76a0df348 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/repair-and-jobs.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/repair-and-jobs.xml
@@ -10,7 +10,7 @@
multimedia
https://github.com/nextcloud/news/issues
-
+
OCA\DAV\CardDAV\Sync\SyncJob
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/settings-and-activity-and-nav.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/settings-and-activity-and-nav.xml
index 42c5afcdff3..fafdca5d571 100644
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/settings-and-activity-and-nav.xml
+++ b/nextcloudappstore/api/v1/tests/data/infoxmls/settings-and-activity-and-nav.xml
@@ -32,7 +32,7 @@
-
+
diff --git a/nextcloudappstore/api/v1/tests/data/infoxmls/transform.xml b/nextcloudappstore/api/v1/tests/data/infoxmls/transform.xml
deleted file mode 100644
index 16ec729eefc..00000000000
--- a/nextcloudappstore/api/v1/tests/data/infoxmls/transform.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- news
- News
- An RSS/Atom feed reader
- An RSS/Atom feed reader
- 8.8.2
- agpl
- Bernhard Posselt
- multimedia
- https://github.com/nextcloud/news/issues
-
-
-
-
diff --git a/nextcloudappstore/api/v1/tests/test_parser.py b/nextcloudappstore/api/v1/tests/test_parser.py
index c0d84639f04..cbf3f86a598 100644
--- a/nextcloudappstore/api/v1/tests/test_parser.py
+++ b/nextcloudappstore/api/v1/tests/test_parser.py
@@ -50,14 +50,13 @@ def test_parse_minimal(self):
'php_min_version': '*',
'raw_php_max_version': '*',
'raw_php_min_version': '*',
- 'platform_max_version': '10.0.0',
- 'platform_min_version': '9.0.0',
- 'raw_platform_max_version': '9',
- 'raw_platform_min_version': '9',
+ 'platform_max_version': '13.0.0',
+ 'platform_min_version': '11.0.0',
+ 'raw_platform_max_version': '12',
+ 'raw_platform_min_version': '11',
'shell_commands': [],
'version': '8.8.2',
- },
- 'ocsid': None,
+ }
}}
self.assertDictEqual(expected, result)
@@ -96,16 +95,6 @@ def test_parse_invalid_elements(self):
self.config.pre_info_xslt,
self.config.info_xslt)
- def test_parse_minimal_transform(self):
- xml = self._get_contents('data/infoxmls/transform.xml')
- result = parse_app_metadata(xml, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- min_version = result['app']['release']['platform_min_version']
- max_version = result['app']['release']['platform_max_version']
- self.assertEqual('10.0.0', min_version)
- self.assertEqual('12.0.0', max_version)
-
def test_parse_minimal_nextcloud(self):
xml = self._get_contents('data/infoxmls/nextcloud.xml')
result = parse_app_metadata(xml, self.config.info_schema,
@@ -116,40 +105,6 @@ def test_parse_minimal_nextcloud(self):
self.assertEqual('10.0.0', min_version)
self.assertEqual('12.0.0', max_version)
- def test_parse_category_mapping(self):
- xml = self._get_contents('data/infoxmls/category_mapping.xml')
- result = parse_app_metadata(xml, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- categories = result['app']['categories']
- expected = [
- {'category': {'id': 'organization'}},
- {'category': {'id': 'tools'}},
- ]
- self.assertListEqual(expected, categories)
-
- def test_parse_category_mapping_tool(self):
- xml = self._get_contents('data/infoxmls/category_mapping_tool.xml')
- result = parse_app_metadata(xml, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- categories = result['app']['categories']
- expected = [
- {'category': {'id': 'tools'}},
- ]
- self.assertListEqual(expected, categories)
-
- def test_parse_category_mapping_game(self):
- xml = self._get_contents('data/infoxmls/category_mapping_game.xml')
- result = parse_app_metadata(xml, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- categories = result['app']['categories']
- expected = [
- {'category': {'id': 'tools'}},
- ]
- self.assertListEqual(expected, categories)
-
def test_validate_schema(self):
xml = self._get_contents('data/infoxmls/invalid.xml')
with (self.assertRaises(InvalidAppMetadataXmlException)):
@@ -157,21 +112,6 @@ def test_validate_schema(self):
self.config.pre_info_xslt,
self.config.info_xslt)
- def test_validate_pre_11(self):
- xml = self._get_contents('data/infoxmls/9and10.xml')
- parse_app_metadata(xml, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- xml = self._get_contents('data/infoxmls/11.xml')
- parse_app_metadata(xml, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- xml = self._get_contents('data/infoxmls/9and10invalid.xml')
- with (self.assertRaises(InvalidAppMetadataXmlException)):
- parse_app_metadata(xml, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
-
def test_fixes_xml(self):
xml = self._get_contents('data/infoxmls/news.xml')
parse_app_metadata(xml, self.config.info_schema,
@@ -556,7 +496,6 @@ def test_map_data(self):
{'screenshot': {'url': 'https://example.com/2.jpg',
'small_thumbnail': None, 'ordering': 2}}
],
- 'ocsid': None,
}}
self.assertDictEqual(expected, result)
diff --git a/nextcloudappstore/api/v1/tests/test_release_importer.py b/nextcloudappstore/api/v1/tests/test_release_importer.py
index 4576f5263e4..8fc174a5519 100644
--- a/nextcloudappstore/api/v1/tests/test_release_importer.py
+++ b/nextcloudappstore/api/v1/tests/test_release_importer.py
@@ -59,9 +59,9 @@ def test_import_minimal(self):
release = app.releases.all()[0]
self.assertEqual('8.8.2', release.version)
- self.assertEqual('>=9.0.0,<10.0.0', release.platform_version_spec)
+ self.assertEqual('>=11.0.0,<13.0.0', release.platform_version_spec)
self.assertEqual('*', release.php_version_spec)
- self.assertEqual('>=9,<=9', release.raw_platform_version_spec)
+ self.assertEqual('>=11,<=12', release.raw_platform_version_spec)
self.assertEqual('*', release.raw_php_version_spec)
self.assertEqual(32, release.min_int_size)
self._assert_all_empty(release, ['signature', 'download'])
@@ -185,23 +185,6 @@ def test_release_no_update_nighly(self):
app = App.objects.get(pk='news')
self.assertEqual('', app.website)
- def test_release_import_ocsid_present(self):
- result = parse_app_metadata(self.min, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- result['app']['ocsid'] = 3
- self.importer.import_data('app', result['app'], None)
- app = App.objects.get(pk='news')
- self.assertEqual(3, app.ocsid)
-
- def test_release_import_ocsid_absent(self):
- result = parse_app_metadata(self.min, self.config.info_schema,
- self.config.pre_info_xslt,
- self.config.info_xslt)
- self.importer.import_data('app', result['app'], None)
- app = App.objects.get(pk='news')
- self.assertEqual(None, app.ocsid)
-
def test_release_create_prerelease(self):
result = parse_app_metadata(self.min, self.config.info_schema,
self.config.pre_info_xslt,
diff --git a/nextcloudappstore/core/admin.py b/nextcloudappstore/core/admin.py
index c1d6c20d0c4..7e15f8e179b 100644
--- a/nextcloudappstore/core/admin.py
+++ b/nextcloudappstore/core/admin.py
@@ -45,7 +45,7 @@ class CategoryAdmin(TranslatableAdmin):
@admin.register(App)
class AppAdmin(TranslatableAdmin):
list_display = ('id', 'owner', 'name', 'last_release', 'rating_recent',
- 'rating_overall', 'summary', 'ocsid', 'is_featured',
+ 'rating_overall', 'summary', 'is_featured',
'ownership_transfer_enabled')
list_filter = ('owner', 'co_maintainers', 'categories', 'created',
'is_featured', 'last_release', 'ownership_transfer_enabled')
diff --git a/nextcloudappstore/core/fixtures/nextcloudreleases.json b/nextcloudappstore/core/fixtures/nextcloudreleases.json
index 5265d1975ec..c6134039133 100644
--- a/nextcloudappstore/core/fixtures/nextcloudreleases.json
+++ b/nextcloudappstore/core/fixtures/nextcloudreleases.json
@@ -47,103 +47,5 @@
"fields": {
"is_current": false
}
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "11.0.5",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "10.0.0",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "10.0.1",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "10.0.2",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "10.0.3",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "10.0.4",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.50",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.51",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.52",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.53",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.54",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.55",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.56",
- "fields": {
- "is_current": false
- }
- },
- {
- "model": "core.nextcloudrelease",
- "pk": "9.0.57",
- "fields": {
- "is_current": false
- }
}
]
diff --git a/nextcloudappstore/core/migrations/0017_auto_20170610_1311.py b/nextcloudappstore/core/migrations/0017_auto_20170610_1311.py
new file mode 100644
index 00000000000..96f4756fc39
--- /dev/null
+++ b/nextcloudappstore/core/migrations/0017_auto_20170610_1311.py
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.7 on 2017-06-10 13:11
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('core', '0016_auto_20170325_2009'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='app',
+ name='ocsid',
+ ),
+ migrations.AlterField(
+ model_name='app',
+ name='admin_docs',
+ field=models.URLField(blank=True, max_length=256, verbose_name='Admin documentation URL'),
+ ),
+ migrations.AlterField(
+ model_name='app',
+ name='developer_docs',
+ field=models.URLField(blank=True, max_length=256, verbose_name='Developer documentation URL'),
+ ),
+ migrations.AlterField(
+ model_name='app',
+ name='id',
+ field=models.CharField(help_text='app ID, identical to folder name', max_length=256, primary_key=True, serialize=False, unique=True, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='app',
+ name='issue_tracker',
+ field=models.URLField(blank=True, max_length=256, verbose_name='Issue tracker URL'),
+ ),
+ migrations.AlterField(
+ model_name='app',
+ name='user_docs',
+ field=models.URLField(blank=True, max_length=256, verbose_name='User documentation URL'),
+ ),
+ migrations.AlterField(
+ model_name='apprelease',
+ name='download',
+ field=models.URLField(blank=True, max_length=256, verbose_name='Archive download URL'),
+ ),
+ migrations.AlterField(
+ model_name='category',
+ name='id',
+ field=models.CharField(help_text='Category ID used to identify the category an app is uploaded to', max_length=256, primary_key=True, serialize=False, unique=True, verbose_name='Id'),
+ ),
+ migrations.AlterField(
+ model_name='nextcloudrelease',
+ name='is_current',
+ field=models.BooleanField(default=False, help_text='Only one version can be the current one. This field is used to pre-select dropdowns for app generation, etc.', verbose_name='Is current version'),
+ ),
+ migrations.AlterField(
+ model_name='screenshot',
+ name='url',
+ field=models.URLField(max_length=256, verbose_name='Image URL'),
+ ),
+ ]
diff --git a/nextcloudappstore/core/models.py b/nextcloudappstore/core/models.py
index c3a01620c74..d3dc0ea7a05 100644
--- a/nextcloudappstore/core/models.py
+++ b/nextcloudappstore/core/models.py
@@ -104,8 +104,6 @@ class App(TranslatableModel):
verbose_name=_('Last release at'),
default=timezone.now)
certificate = TextField(verbose_name=_('Certificate'))
- ocsid = IntegerField(verbose_name=_('OCS ID'), null=True, blank=True,
- help_text=_('Old store ID. Deprecated'), unique=True)
ownership_transfer_enabled = BooleanField(
verbose_name=_('Ownership transfer enabled'), default=False,
help_text=_('If enabled, a user can try to register the same app '
@@ -479,14 +477,6 @@ class Meta:
def __str__(self) -> str:
return self.name
- @property
- def ocsid(self):
- """Deprecated hack, assumes that the first two chars are unique"""
- initials = self.id[:2]
- ascii = map(ord, initials)
- chars = map(str, ascii)
- return ''.join(chars)
-
class License(Model):
id = CharField(max_length=256, unique=True, primary_key=True,
diff --git a/nextcloudappstore/core/scaffolding/app-templates/10 b/nextcloudappstore/core/scaffolding/app-templates/10
deleted file mode 120000
index 9d607966b72..00000000000
--- a/nextcloudappstore/core/scaffolding/app-templates/10
+++ /dev/null
@@ -1 +0,0 @@
-11
\ No newline at end of file
diff --git a/nextcloudappstore/core/templates/api/v0/app.xml b/nextcloudappstore/core/templates/api/v0/app.xml
deleted file mode 100644
index 458544902a8..00000000000
--- a/nextcloudappstore/core/templates/api/v0/app.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-{% load compatible_releases first_word %}
-
-
- ok
- 100
-
-
-
-
- {{ app.ocsid }}
- {{ app.name }}
- {% with releases=app|compatible_releases:version %}
- {{ releases.0.version }}
- {% endwith %}
- {{ app.last_release|date:'c' }}
- {{ app.categories.all.0.ocsid }}
- {{ app.categories.all.0.name|first_word }}
- {{ app.owner.first_name }} {{ app.owner.last_name }}
- http://opendesktop.org/usermanager/search.php?username=anonymous
- 0
- {% widthratio app.rating_overall 1 100 %}
- {{ app.description }}
- {% if app.is_featured %}
- 200
- {% else %}
- 100
- {% endif %}
- AGPL
- {{ request.scheme }}://{{ request.get_host }}{% url 'app-detail' app.id %}
- {% for shot in app.screenshots.all %}
- {{ shot.url }}
- {{ shot.url }}
- {% endfor %}
-
-
-
-
-
-
diff --git a/nextcloudappstore/core/templates/api/v0/apps.xml b/nextcloudappstore/core/templates/api/v0/apps.xml
deleted file mode 100644
index 90c63629f73..00000000000
--- a/nextcloudappstore/core/templates/api/v0/apps.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-{% load compatible_releases first_word %}
-
-
- ok
- 100
-
- {{ apps|length }}
- {{ apps|length }}
-
-
- {% for app in apps %}
-
- {{ app.ocsid }}
- {{ app.name }}
- {% with releases=app|compatible_releases:version %}
- {{ releases.0.version }}
- {% endwith %}
- {{ app.last_release|date:'c' }}
- {{ app.categories.all.0.ocsid }}
- {{ app.categories.all.0.name|first_word }}
- {{ app.owner.first_name }} {{ app.owner.last_name }}
- http://opendesktop.org/usermanager/search.php?username=anonymous
- 0
- {% widthratio app.rating_overall 1 100 %}
- {{ app.description }}
- {% if app.is_featured %}
- 200
- {% else %}
- 100
- {% endif %}
- AGPL
- {% for shot in app.screenshots.all %}
- {{ shot.url }}
- {{ shot.url }}
- {% endfor %}
- {{ request.scheme }}://{{ request.get_host }}{% url 'app-detail' app.id %}
-
- {% endfor %}
-
-
diff --git a/nextcloudappstore/core/templates/api/v0/categories.xml b/nextcloudappstore/core/templates/api/v0/categories.xml
deleted file mode 100644
index 7a069a031c9..00000000000
--- a/nextcloudappstore/core/templates/api/v0/categories.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-{% load first_word %}
-
-
- ok
- 100
-
- {{ categories|length }}
- {{ categories|length }}
-
-
- {% for cat in categories %}
-
- {{ cat.ocsid }}
- {{ cat.name|first_word }}
-
- {% endfor %}
-
-
diff --git a/nextcloudappstore/core/templates/api/v0/download.xml b/nextcloudappstore/core/templates/api/v0/download.xml
deleted file mode 100644
index 92ba9233e6c..00000000000
--- a/nextcloudappstore/core/templates/api/v0/download.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- ok
- 100
-
-
-
-
- {{ download }}
-
-
-
diff --git a/nextcloudappstore/settings/base.py b/nextcloudappstore/settings/base.py
index cc4a4d8392a..33e4735b84d 100644
--- a/nextcloudappstore/settings/base.py
+++ b/nextcloudappstore/settings/base.py
@@ -286,9 +286,6 @@
APP_SCAFFOLDING_PROFILES = {
- 10: {
- 'owncloud_version': '9.1'
- },
11: {
'owncloud_version': '9.2'
}