diff --git a/README.md b/README.md index a7ac3284..9735d3ef 100644 --- a/README.md +++ b/README.md @@ -72,3 +72,12 @@ INSTALLED_APPS += load_apps() ``` - **restart your server** + +*** + + +## How to run tests +- You Can run tests with the following command + ```sh + python manage.py test cartoview --with-coverage --cover-package=cartoview + ``` diff --git a/cartoview/app_manager/context_processors.py b/cartoview/app_manager/context_processors.py index 9b4c6b69..332739af 100644 --- a/cartoview/app_manager/context_processors.py +++ b/cartoview/app_manager/context_processors.py @@ -4,14 +4,19 @@ from builtins import * -from cartoview.app_manager.models import App, AppInstance -from cartoview.site_management.models import SiteLogo from django.conf import settings -from geonode.version import get_version -from cartoview import __version__ from django.contrib.sites.models import Site from django.shortcuts import get_object_or_404 from future import standard_library +from geonode.groups.models import Group +from geonode.maps.models import Layer, Map +from geonode.people.models import Profile +from geonode.version import get_version +from guardian.shortcuts import get_objects_for_user + +from cartoview import __version__ +from cartoview.app_manager.models import App, AppInstance +from cartoview.site_management.models import SiteLogo standard_library.install_aliases() @@ -21,11 +26,23 @@ def apps(request): def cartoview_processor(request): + permitted = get_objects_for_user(request.user, + 'base.view_resourcebase') + cartoview_counters = { + "apps": App.objects.count(), + "app_instances": AppInstance.objects.filter(id__in=permitted).count(), + "maps": Map.objects.filter(id__in=permitted).count(), + "layers": Layer.objects.filter(id__in=permitted).count(), + "users": Profile.objects.exclude(username="AnonymousUser").count(), + "groups": Group.objects.exclude(name="anonymous").count() + } + defaults = { 'apps': App.objects.all().order_by('order'), 'CARTOVIEW_VERSION': get_version(__version__), 'APPS_MENU': settings.APPS_MENU, 'apps_instance_count': AppInstance.objects.all().count(), + "cartoview_counters": cartoview_counters, 'instances': AppInstance.objects.all().order_by('app__order')[:5] } return defaults diff --git a/cartoview/settings.py b/cartoview/settings.py index a84e2b92..25621c0e 100644 --- a/cartoview/settings.py +++ b/cartoview/settings.py @@ -74,8 +74,6 @@ # NOTE:set cartoview_stand_alone environment var if you are not using cartoview_proect_template CARTOVIEW_STAND_ALONE = strtobool(os.getenv('CARTOVIEW_STAND_ALONE', 'FALSE')) if CARTOVIEW_STAND_ALONE: - from cartoview.app_manager.settings import load_apps - INSTALLED_APPS += load_apps() -if 'test' in sys.argv: + print("CARTOVIEW_STAND_ALONE={}".format(CARTOVIEW_STAND_ALONE)) from cartoview.app_manager.settings import load_apps INSTALLED_APPS += load_apps() diff --git a/cartoview/templates/site_index.html b/cartoview/templates/site_index.html index fad700f7..99c7f3b8 100644 --- a/cartoview/templates/site_index.html +++ b/cartoview/templates/site_index.html @@ -140,34 +140,34 @@

- {% layers_counts %} + {{cartoview_counters.layers}}
Layers
- {% maps_counts %} + {{cartoview_counters.maps}}
Maps
- {% users_counts %} + {{cartoview_counters.users}}
Users
- {% groups_counts %} + {{cartoview_counters.groups}}
Groups
- {% apps_counts %} + {{cartoview_counters.apps}}
Apps
diff --git a/cartoview/templatetags/cartoview_tags.py b/cartoview/templatetags/cartoview_tags.py index 38b0c4a9..c950c880 100644 --- a/cartoview/templatetags/cartoview_tags.py +++ b/cartoview/templatetags/cartoview_tags.py @@ -37,41 +37,6 @@ def num_ratings(obj): return len(Rating.objects.filter(object_id=obj.pk, content_type=ct)) -@register.simple_tag -def layers_counts(): - return Layer.objects.count() - - -@register.simple_tag -def maps_counts(): - return Map.objects.count() - - -@register.simple_tag -def apps_counts(): - return AppInstance.objects.count() - - -@register.simple_tag -def users_counts(): - return Profile.objects.exclude(username="AnonymousUser").count() - - -@register.simple_tag -def groups_counts(): - return Group.objects.exclude(name="anonymous").count() - - -@register.simple_tag -def apps_url(url_name, *args, **kwargs): - url = None - try: - url = reverse(url_name, args=args, kwargs=kwargs) - except: - pass - return json.dumps(url) - - @register.assignment_tag(takes_context=True) def facets(context): request = context['request'] @@ -160,12 +125,6 @@ def facets(context): return facets -@register.filter(name='jsonify') -def jsonify(values): - """Json Object""" - return mark_safe(json.dumps(values)) - - @register.filter(name='objects_count') def objects_count(instances, user): permitted = [instance for instance in instances if user.has_perm(