Merge pull request #2785 from normanjaeckel/RemoveDjangoUrlPatternsView
Removed viewpoint for Django url patterns. Fixed #1453.
This commit is contained in:
commit
4a4f5622f4
@ -381,21 +381,6 @@ angular.module('OpenSlidesApp.core.site', [
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
// Helper to add ui.router states at runtime.
|
|
||||||
// Needed for the django url_patterns.
|
|
||||||
.provider('runtimeStates', [
|
|
||||||
'$stateProvider',
|
|
||||||
function($stateProvider) {
|
|
||||||
this.$get = function($q, $timeout, $state) {
|
|
||||||
return {
|
|
||||||
addState: function(name, state) {
|
|
||||||
$stateProvider.state(name, state);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
/* This factory handles the filtering of the OS-data-tables. It contains
|
/* This factory handles the filtering of the OS-data-tables. It contains
|
||||||
* all logic needed for the table header filtering. Things to configure:
|
* all logic needed for the table header filtering. Things to configure:
|
||||||
* - multiselectFilters: A dict associating the filter name to a list (empty per default). E.g.
|
* - multiselectFilters: A dict associating the filter name to a list (empty per default). E.g.
|
||||||
@ -559,25 +544,6 @@ angular.module('OpenSlidesApp.core.site', [
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
// Load the django url patterns
|
|
||||||
.run([
|
|
||||||
'runtimeStates',
|
|
||||||
'$http',
|
|
||||||
function(runtimeStates, $http) {
|
|
||||||
$http.get('/core/url_patterns/').then(function(data) {
|
|
||||||
for (var pattern in data.data) {
|
|
||||||
runtimeStates.addState(pattern, {
|
|
||||||
'url': data.data[pattern],
|
|
||||||
data: {extern: true},
|
|
||||||
onEnter: function($window) {
|
|
||||||
$window.location.href = this.url;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
// angular formly config options
|
// angular formly config options
|
||||||
.run([
|
.run([
|
||||||
'formlyConfig',
|
'formlyConfig',
|
||||||
|
@ -3,10 +3,6 @@ from django.conf.urls import url
|
|||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^core/url_patterns/$',
|
|
||||||
views.UrlPatternsView.as_view(),
|
|
||||||
name='core_url_patterns'),
|
|
||||||
|
|
||||||
url(r'^core/servertime/$',
|
url(r'^core/servertime/$',
|
||||||
views.ServerTime.as_view(),
|
views.ServerTime.as_view(),
|
||||||
name='core_servertime'),
|
name='core_servertime'),
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import base64
|
import base64
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import re
|
|
||||||
import uuid
|
import uuid
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from operator import attrgetter
|
from operator import attrgetter
|
||||||
@ -11,7 +10,6 @@ from urllib.parse import unquote
|
|||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.staticfiles import finders
|
from django.contrib.staticfiles import finders
|
||||||
from django.core.urlresolvers import get_resolver
|
|
||||||
from django.db.models import F
|
from django.db.models import F
|
||||||
from django.http import Http404, HttpResponse
|
from django.http import Http404, HttpResponse
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
@ -785,24 +783,6 @@ class CountdownViewSet(ModelViewSet):
|
|||||||
|
|
||||||
# Special API views
|
# Special API views
|
||||||
|
|
||||||
class UrlPatternsView(utils_views.APIView):
|
|
||||||
"""
|
|
||||||
Returns a dictionary with all url patterns as json. The patterns kwargs
|
|
||||||
are transformed using a colon.
|
|
||||||
"""
|
|
||||||
URL_KWARGS_REGEX = re.compile(r'%\((\w*)\)s')
|
|
||||||
http_method_names = ['get']
|
|
||||||
|
|
||||||
def get_context_data(self, **context):
|
|
||||||
result = {}
|
|
||||||
url_dict = get_resolver(None).reverse_dict
|
|
||||||
for pattern_name in filter(lambda key: isinstance(key, str), url_dict.keys()):
|
|
||||||
normalized_regex_bits, p_pattern, pattern_default_args = url_dict[pattern_name]
|
|
||||||
url, url_kwargs = normalized_regex_bits[0]
|
|
||||||
result[pattern_name] = self.URL_KWARGS_REGEX.sub(r':\1', url)
|
|
||||||
return result
|
|
||||||
|
|
||||||
|
|
||||||
class ServerTime(utils_views.APIView):
|
class ServerTime(utils_views.APIView):
|
||||||
"""
|
"""
|
||||||
Returns the server time as UNIX timestamp.
|
Returns the server time as UNIX timestamp.
|
||||||
|
@ -5,23 +5,6 @@ from openslides.core import views
|
|||||||
from openslides.utils.rest_api import ValidationError
|
from openslides.utils.rest_api import ValidationError
|
||||||
|
|
||||||
|
|
||||||
class TestUrlPatternsView(TestCase):
|
|
||||||
@patch('openslides.core.views.get_resolver')
|
|
||||||
def test_get_context_data(self, mock_resolver):
|
|
||||||
mock_resolver().reverse_dict = {
|
|
||||||
'url_pattern1': ([['my_url1', [None]]], None, None),
|
|
||||||
'url_pattern2': ([['my_url2/%(kwarg)s/', ['kwargs']]], None, None),
|
|
||||||
('not_a_str', ): [[['not_a_str']]]}
|
|
||||||
view = views.UrlPatternsView()
|
|
||||||
|
|
||||||
context = view.get_context_data()
|
|
||||||
|
|
||||||
self.assertEqual(
|
|
||||||
context,
|
|
||||||
{'url_pattern1': 'my_url1',
|
|
||||||
'url_pattern2': 'my_url2/:kwarg/'})
|
|
||||||
|
|
||||||
|
|
||||||
@patch('openslides.core.views.ProjectorViewSet.get_object')
|
@patch('openslides.core.views.ProjectorViewSet.get_object')
|
||||||
class ProjectorAPI(TestCase):
|
class ProjectorAPI(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user