def get(self, request, **kwargs): # add g3w-suite version res = { 'data': { 'version': get_version(), 'modules': settings.G3WADMIN_LOCAL_MORE_APPS, 'environment': { 'python_version': get_version(platform.sys.version_info), 'django_version': dj_get_version(), 'qgis-server-version': Qgis.QGIS_VERSION } } } self.results.results.update(res) return Response(self.results.results)
def testG3WSUITEInfoAPI(self): """Test api return general information about suite deploy""" url = reverse('deploy-info-api') res = self.client.get(url) self.assertTrue(res.status_code, 200) jres = json.loads(res.content) self.assertEqual(jres['data']['version'], get_version()) self.assertEqual(jres['data']['modules'], settings.G3WADMIN_LOCAL_MORE_APPS)
def global_settings(request): g3wadmin_context = {} g3wadmin_context['SETTINGS'] = settings # add group base g3wadmin_context['G3W_EDITOR1'] = G3W_EDITOR1 g3wadmin_context['G3W_EDITOR2'] = G3W_EDITOR2 g3wadmin_context['G3W_VIEWER1'] = G3W_VIEWER1 g3wadmin_context['G3W_VIEWER2'] = G3W_VIEWER2 # add anonymous user istance g3wadmin_context['anonymous_user'] = get_anonymous_user() skin = get_adminlte_skin_by_user(request.user) g3wadmin_context['adminlte_skin'] = 'skin-{}'.format( skin if skin else settings.ADMINLTE_SKIN_DEFAULT) g3wadmin_context[ 'adminlte_layout_option'] = settings.ADMINLTE_LAYOUT_OPTION g3wadmin_context['powerd_by'] = settings.G3WSUITE_POWERD_BY # add date current time g3wadmin_context['today'] = datetime.today() # add cookies: g3wadmin_context['sidebar_status'] = 'sidebar-open' if 'g3wadmin_sidebar_status' in request.COOKIES: if request.COOKIES['g3wadmin_sidebar_status'] == 'collapsed': g3wadmin_context['sidebar_status'] = 'sidebar-collapse' # add specific css modules and submodules css_modules = load_css_modules.send(request) g3wadmin_context['css_modules'] = [css[1] for css in css_modules] js_modules = load_js_modules.send(request) g3wadmin_context['js_modules'] = [js[1] for js in js_modules] # add specific items to main navbar navbar_items = load_navbar_items.send(request) g3wadmin_context['navbar_items'] = list() for item in navbar_items: if isinstance(item[1], list): g3wadmin_context['navbar_items'] += item[1] else: g3wadmin_context['navbar_items'].append(item[1]) g3wadmin_context['VERSION'] = get_version() g3wadmin_context['admin_page_title'] = getattr(settings, 'G3WSUITE_CUSTOM_TITLE', settings.SITE_TITLE) return g3wadmin_context
def global_settings(request): g3wadmin_context = {} g3wadmin_context['SETTINGS'] = settings # add group base g3wadmin_context['G3W_EDITOR1'] = G3W_EDITOR1 g3wadmin_context['G3W_EDITOR2'] = G3W_EDITOR2 g3wadmin_context['G3W_VIEWER1'] = G3W_VIEWER1 g3wadmin_context['G3W_VIEWER2'] = G3W_VIEWER2 groupsUser = request.user.groups.values_list('name', flat=True) if request.user.is_superuser and request.user.is_staff: g3wadmin_context['adminlte_skin'] = 'skin-yellow' elif request.user.is_superuser: g3wadmin_context['adminlte_skin'] = 'skin-red' elif G3W_EDITOR1 in groupsUser or G3W_EDITOR2 in groupsUser: g3wadmin_context['adminlte_skin'] = 'skin-purple' elif G3W_VIEWER1 in groupsUser or G3W_VIEWER2 in groupsUser: g3wadmin_context['adminlte_skin'] = 'skin-green' else: g3wadmin_context['adminlte_skin'] = settings.ADMINLTE_SKIN_DEFAULT g3wadmin_context['adminlte_layout_option'] = settings.ADMINLTE_LAYOUT_OPTION # add date current time g3wadmin_context['today'] = datetime.today() # add cookies: g3wadmin_context['sidebar_status'] = 'sidebar-open' if 'g3wadmin_sidebar_status' in request.COOKIES: if request.COOKIES['g3wadmin_sidebar_status'] == 'collapsed': g3wadmin_context['sidebar_status'] = 'sidebar-collapse' # add specific css modules and submodules css_modules = load_css_modules.send(request) g3wadmin_context['css_modules'] = [css[1] for css in css_modules] js_modules = load_js_modules.send(request) g3wadmin_context['js_modules'] = [js[1] for js in js_modules] # add specific items to main navbar navbar_items = load_navbar_items.send(request) g3wadmin_context['navbar_items'] = list() for item in navbar_items: if isinstance(item[1], list): g3wadmin_context['navbar_items'] += item[1] else: g3wadmin_context['navbar_items'].append(item[1]) g3wadmin_context['VERSION'] = get_version() return g3wadmin_context
def get_context_data(self, **kwargs): contextData = super(ClientView, self).get_context_data(**kwargs) # group serializer try: group = self.project.group except: group = get_object_or_404(Group, slug=kwargs['group_slug']) groupSerializer = GroupSerializer(group, projectId=str(self.project.pk), projectType=kwargs['project_type'], request=self.request) groupData = deepcopy(groupSerializer.data) # choose client by querystring paramenters contextData['client_default'] = self.get_client_name() # login_url login_url = None try: login_url = resolve_url(settings.LOGIN_URL) + '?next={}'.format( reverse('group-project-map', kwargs={ 'group_slug': kwargs['group_slug'], 'project_type': kwargs['project_type'], 'project_id': self.project.pk })) except: pass # logout_url logout_url = None try: logout_url = reverse('logout') + '?next={}'.format( reverse('group-project-map', kwargs={ 'group_slug': kwargs['group_slug'], 'project_type': kwargs['project_type'], 'project_id': self.project.pk })) except: pass # add user login data u = self.request.user # admin_url change_grant_users = get_users_for_object(self.project, "change_project", with_group_users=True) if u in change_grant_users or u.is_superuser: admin_url = reverse('home') else: admin_url = None user_data = {'i18n': get_language(), 'login_url': login_url} if not u.is_anonymous: user_data.update({ 'id': u.pk, 'username': u.username, 'first_name': u.first_name, 'last_name': u.last_name, 'is_superuser': u.is_superuser, 'is_staff': u.is_staff, 'groups': [g.name for g in u.groups.all()], 'logout_url': logout_url }) if admin_url: user_data.update({'admin_url': admin_url}) user_data = JSONRenderer().render(user_data) serializedGroup = JSONRenderer().render(groupData) if six.PY3: serializedGroup = str(serializedGroup, 'utf-8') baseurl = "/{}".format( settings.SITE_PREFIX_URL if settings.SITE_PREFIX_URL else '') frontendurl = ',"frontendurl":"{}"'.format( baseurl) if settings.FRONTEND else '' generaldata = GeneralSuiteData.objects.get() # add baseUrl property contextData['group_config'] = 'var initConfig ={{ "i18n": {}, "staticurl":"{}", "client":"{}", ' \ '"mediaurl":"{}", "user":{}, "group":{}, "baseurl":"{}", "vectorurl":"{}", ' \ '"proxyurl": "{}", "rasterurl":"{}", "interfaceowsurl":"{}", "main_map_title":{}, ' \ '"g3wsuite_logo_img": "{}", "credits": "{}", ' \ '"version": "{}" {} }}'.\ format(json.dumps(settings.LANGUAGES), settings.STATIC_URL, "{}/".format(settings.CLIENT_DEFAULT), settings.MEDIA_URL, user_data.decode('UTF-8'), serializedGroup, baseurl, settings.VECTOR_URL, reverse('interface-proxy'), settings.RASTER_URL, reverse('interface-ows'), '"' + generaldata.main_map_title + '"' if generaldata.main_map_title else 'null', settings.CLIENT_G3WSUITE_LOGO, reverse('client-credits'), get_version(), frontendurl) # project by type(app) if not '{}-{}'.format(kwargs['project_type'], self.project.pk) in list( groupSerializer.projects.keys()): raise Http404('No project type and/or project id present in group') # page title contextData['page_title'] = '{} | {}'.format( getattr(settings, 'G3WSUITE_CUSTOM_TITLE', 'g3w - client'), self.project.title_ur if self.project.title_ur else self.project.title) # choosen skin by user main role contextData['skin_class'] = get_adminlte_skin_by_user( self.request.user) return contextData