113
Приложение 4.
Листинг программных модулей
# coding: utf-8
import ogr
import json
import datetime
import numpy as np
from urllib.parse import unquote
from psycopg2 import DatabaseError
from django.contrib.auth.decorators import login_required
from django.http import (HttpResponse, HttpResponseBadRequest, HttpResponseServerError)
from django.shortcuts import get_object_or_404, render
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import (require_GET, require_http_methods,
require_POST)
from cartoservice.permissions import has_access_to_cartoservice
from config.models import SiteConfiguration
from data_manager.models import Dictionary, Source
from data_manager.permissions import has_access_to_datamanager
from geoanalitika.middleware import get_host
from geoanalitika.settings import (ANONYMOUS_CAN_EDIT_MV,
CARTOMETRIC_ANALYSIS_FEATURES_LIMIT)
from journal.constants import MV_EDIT_LAYER_DATA
from journal.manage import create_journal_log
from tab_viewer.utils import get_joins
from main.mixins import FilterMixin
from main.models import GlobalCache
from main.consts import CacheKeys
from security_data.utils import get_user_security_tag
from .consts import DICT_CACHE_KEY
from .decorators import has_access_to_project
from .exceptions import OmnicommException
from .mapnik_funcs import *
from .models import BaseMap, File, Layer, Project, ProjectPermalink,
ProjectLayerPermission, OmnicommLayer
from .serializers import basemap_serializer, serialize_layer
from .tasks import update_attributes, update_extent
def index(request):
context = {
'data_manager_access': has_access_to_datamanager(request.user),
'cartoservice_access': has_access_to_cartoservice(request.user)
}
project_id = request.GET.get('project_id', None)
if project_id:
project = Project.objects.get(pk=int(project_id))
permission = project.get_user_permission(request.user)
context['can_edit'] = permission['change']
return render(request, 'projects/index.html', context)
def project_forbidden(request):
context = {'project': request.session['forbidden_project'], 'user': request.user}