Skip to content

Commit

Permalink
Merge pull request #216 from cartologic/master
Browse files Browse the repository at this point in the history
push back to 1.10.x
  • Loading branch information
ahmednoureldeen committed Jun 1, 2020
2 parents f4e09bc + 259cbc1 commit 5fb6227
Show file tree
Hide file tree
Showing 81 changed files with 1,118 additions and 6,026 deletions.
13 changes: 6 additions & 7 deletions .travis.yml
Expand Up @@ -9,7 +9,7 @@ addons:
postgresql: '9.6'
apt:
packages:
- postgresql-9.6-postgis-2.3
- postgresql-9.6-postgis-2.4
- libevent-dev
services:
- postgresql
Expand Down Expand Up @@ -40,15 +40,15 @@ install:
python-setuptools
- sudo apt-get install -y curl build-essential build-essential python-dev libffi-dev
libssl-dev
- sudo add-apt-repository -y ppa:webupd8team/java
- sudo apt-get update
- sudo apt-get install -y --force-yes oracle-java8-installer ant maven2 --no-install-recommends
- sudo update-java-alternatives --set java-8-oracle
- sudo apt install -y openjdk-8-jre openjdk-8-jdk ant maven;
- sudo update-java-alternatives --set java-1.8.0-openjdk-amd64;
- export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::");
- export PATH=$JAVA_HOME'bin/java':$PATH;
- pip install celery
- pip install pygdal==`gdal-config --version`
- pip install pygdal==`gdal-config --version`.*
- pip install tqdm
- pip install -e . --upgrade
- pip install django-autocomplete-light==2.3.3
- pip install timeout-decorator
- paver setup_geoserver
- paver start_geoserver
Expand All @@ -73,6 +73,5 @@ deploy:
condition: $TRAVIS_TAG =~ ^v([0-9]+\.?){2,3}(b[0-9]+|rc[0-9]+){0,1}
notifications:
email:
- hisham.karam@cartologic.com
- ahmednosman@cartologic.com
- ahmedNourElDeen@cartologic.com
14 changes: 8 additions & 6 deletions Dockerfile
@@ -1,4 +1,4 @@
FROM python:2.7-slim
FROM python:2.7.16
LABEL "MAINTAINER"="Cartologic Development Team"
ENV PYTHONUNBUFFERED 1
ARG GEONODE_DEV=true
Expand All @@ -8,11 +8,13 @@ ARG APP_DIR=/usr/src/carto_app
# but after any paths given with -I options on the command line.
# This environment variable is used regardless of which language is being preprocessed.
ENV CPATH "$CPATH:/usr/include/gdal:/usr/include"
COPY scripts/docker/setup.sh ./
COPY . /cartoview
RUN chmod +x setup.sh
RUN ./setup.sh
WORKDIR ${APP_DIR}
#COPY scripts/docker/setup.sh ./
COPY . ./cartoview
RUN chmod +x cartoview/scripts/docker/setup.sh
RUN cartoview/scripts/docker/setup.sh
# switch to project dir
VOLUME ${APP_DIR}
WORKDIR ${APP_DIR}
WORKDIR ${APP_DIR}/cartoview

CMD ["/bin/bash"]
11 changes: 9 additions & 2 deletions Makefile
Expand Up @@ -6,10 +6,12 @@ sync: up
# set up the database tablea
docker-compose exec cartoview python manage.py migrate
docker-compose exec cartoview python manage.py loaddata sample_admin.json
docker-compose exec cartoview python manage.py loaddata default_oauth_apps.json
docker-compose exec cartoview python manage.py loaddata default_oauth_apps_docker.json
docker-compose exec cartoview python manage.py loaddata app_stores.json
docker-compose exec cartoview python manage.py loaddata initial_data.json

backfill_api_keys:
docker-compose exec cartoview python manage.py backfill_api_keys

prepare_manager: up
#make migration for app_manager
Expand All @@ -34,7 +36,12 @@ reset: down up wait sync

collect_static: up
docker-compose exec cartoview python manage.py collectstatic --noinput
run: up wait prepare_manager sync collect_static

prepare_oauth:
docker-compose exec cartoview paver prepare_docker_oauth_fixture
docker-compose exec cartoview paver install_docker_data_dir

run: up wait prepare_oauth prepare_manager sync collect_static backfill_api_keys

static_db: up sync wait collect_static

Expand Down
2 changes: 1 addition & 1 deletion cartoview/app_manager/admin.py
Expand Up @@ -30,7 +30,7 @@ def uninstall_selected(modeladmin, request, queryset):

@admin.register(App)
class AppAdmin(admin.ModelAdmin):
ordering = ('order', )
ordering = ('order',)
actions = [uninstall_selected]


Expand Down
1 change: 0 additions & 1 deletion cartoview/app_manager/api.py
Expand Up @@ -10,7 +10,6 @@
from tastypie.utils import trailing_slash

from cartoview.log_handler import get_logger

from .serializers import HTMLSerializer

logger = get_logger(__name__)
Expand Down
2 changes: 2 additions & 0 deletions cartoview/app_manager/decorators.py
Expand Up @@ -42,6 +42,7 @@ def restart_enabled(func):
def wrap(*args, **kwargs):
if not getattr(settings, "CARTOVIEW_TEST", False):
return func(*args, **kwargs)

return wrap


Expand All @@ -55,4 +56,5 @@ def wrap(*args, **kwargs):
if hasattr(this, '_rollback'):
this._rollback()
raise e

return wrap
7 changes: 2 additions & 5 deletions cartoview/app_manager/forms.py
Expand Up @@ -17,9 +17,9 @@
class AppInstallerForm(ModelForm):
error_messages = {
'duplicate_app_name':
_("An application with the same user has already installed."),
_("An application with the same user has already installed."),
'invalid_package_file':
_("The uploaded file is not an application package."),
_("The uploaded file is not an application package."),
}
package_file = FileField()

Expand All @@ -29,14 +29,12 @@ class Meta(object):


class AppForm(ModelForm):

class Meta(object):
model = App
fields = ("title",)


class AppInstanceForm(TranslationModelForm):

class Meta(object):
model = AppInstance
fields = [
Expand All @@ -46,7 +44,6 @@ class Meta(object):


class AppInstanceEditForm(ResourceBaseForm):

class Meta(ResourceBaseForm.Meta):
model = AppInstance
exclude = ResourceBaseForm.Meta.exclude
4 changes: 2 additions & 2 deletions cartoview/app_manager/helpers.py
Expand Up @@ -48,8 +48,8 @@ def get_perm(fname):
def make_writeable_recursive(path):
for root, dirs, files in os.walk(path, topdown=False):
for dir in [os.path.join(root, d) for d in dirs]:
os.chmod(dir, get_perm(dir) | stat.S_IRUSR |
os.chmod(dir, get_perm(dir) | stat.S_IRUSR | # noqa
stat.S_IRGRP | stat.S_IROTH)
for file in [os.path.join(root, f) for f in files]:
os.chmod(file, get_perm(file) | stat.S_IRUSR |
os.chmod(file, get_perm(file) | stat.S_IRUSR | # noqa
stat.S_IRGRP | stat.S_IROTH)
18 changes: 10 additions & 8 deletions cartoview/app_manager/installer.py
Expand Up @@ -23,13 +23,12 @@
from cartoview.apps_handler.config import CartoviewApp
from cartoview.log_handler import get_logger
from cartoview.store_api.api import StoreAppResource, StoreAppVersion

from ..apps_handler.req_installer import (ReqFileException,
ReqFilePermissionException,
ReqInstaller)
from .decorators import restart_enabled, rollback_on_failure
from .exceptions import AppAlreadyInstalledException
from .models import App, AppStore, AppType
from ..apps_handler.req_installer import (ReqFileException,
ReqFilePermissionException,
ReqInstaller)

logger = get_logger(__name__)
install_app_batch = getattr(settings, 'INSTALL_APP_BAT', None)
Expand Down Expand Up @@ -72,13 +71,16 @@ def restart_server(cls):
def cherry_restart(cls):
try:
import cherrypy
cherrypy.engine.restart()
# completely stop the cherrypy server instead of reloading
# to avoid waiting to stop used threads error
cherrypy.engine.stop()
cherrypy.engine.start()
except ImportError:
exit(0)


def remove_unwanted(info):
dictionary = info.__dict__.get('_data', {})
dictionary = info.__dict__.get('_data', {}) if info else {}
app_fields = [
str(field.name)
for field in sorted(App._meta.fields + App._meta.many_to_many)
Expand Down Expand Up @@ -140,7 +142,7 @@ def get_store(self, store_id=None):

def get_app_version(self):
if not self.version or self.version == 'latest' or \
self.info.latest_version.version == self.version:
(self.info and self.info.latest_version.version == self.version):
self.version = self.info.latest_version
else:
data = self._request_rest_data("appversion/?app__name=", self.name,
Expand Down Expand Up @@ -359,7 +361,7 @@ def uninstall(self, restart=True):
app_installer = AppInstaller(
app.name, self.store.id, app.version, user=self.user)
dependencies = app_installer.version.dependencies \
if app_installer.version else {}
if app_installer.version else {}
if self.name in dependencies.keys():
app_installer.uninstall(restart=False)
try:
Expand Down
@@ -1,11 +1,11 @@
import importlib

from django.core.management.base import BaseCommand
from geonode.people.models import Profile

from cartoview.app_manager.models import App, AppType
from cartoview.apps_handler.config import CartoviewApp
from cartoview.log_handler import get_logger
from geonode.people.models import Profile

logger = get_logger(with_formatter=True)

Expand Down
@@ -1,9 +1,11 @@
from __future__ import print_function

import requests
from django.core.management.base import BaseCommand

from cartoview.app_manager.installer import AppJson, remove_unwanted
from cartoview.app_manager.models import App
from cartoview.store_api.api import StoreAppResource
from django.core.management.base import BaseCommand


class Command(BaseCommand):
Expand Down
15 changes: 7 additions & 8 deletions cartoview/app_manager/migrations/0001_initial.py
Expand Up @@ -6,7 +6,6 @@


class Migration(migrations.Migration):

dependencies = [
('sites', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
Expand Down Expand Up @@ -54,7 +53,7 @@ class Migration(migrations.Migration):
('order', models.IntegerField(default=0, null=True)),
('installed_by', models.ForeignKey(
blank=True, to=settings.AUTH_USER_MODEL, null=True)),
],),
], ),
migrations.CreateModel(
name='AppInstance',
fields=[
Expand All @@ -73,7 +72,7 @@ class Migration(migrations.Migration):
options={
'abstract': False,
},
bases=('base.resourcebase',),),
bases=('base.resourcebase',), ),
migrations.CreateModel(
name='AppStore',
fields=[
Expand All @@ -85,7 +84,7 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=256)),
('url', models.URLField(verbose_name=b'App Store URL')),
('is_default', models.BooleanField(default=False)),
],),
], ),
migrations.CreateModel(
name='AppTag',
fields=[
Expand All @@ -96,7 +95,7 @@ class Migration(migrations.Migration):
primary_key=True)),
('name', models.CharField(
max_length=200, unique=True, null=True, blank=True)),
],),
], ),
migrations.CreateModel(
name='Logo',
fields=[
Expand All @@ -107,14 +106,14 @@ class Migration(migrations.Migration):
primary_key=True)),
('logo', models.ImageField(upload_to=b'')),
('site', models.OneToOneField(to='sites.Site')),
],),
], ),
migrations.AddField(
model_name='app',
name='store',
field=models.ForeignKey(to='app_manager.AppStore', null=True),),
field=models.ForeignKey(to='app_manager.AppStore', null=True), ),
migrations.AddField(
model_name='app',
name='tags',
field=models.ManyToManyField(to='app_manager.AppTag',
blank=True),),
blank=True), ),
]
Expand Up @@ -5,7 +5,6 @@


class Migration(migrations.Migration):

dependencies = [
('app_manager', '0001_initial'),
]
Expand Down
Expand Up @@ -5,7 +5,6 @@


class Migration(migrations.Migration):

dependencies = [
('app_manager', '0002_auto_20171001_1057'),
]
Expand Down
Expand Up @@ -6,7 +6,6 @@


class Migration(migrations.Migration):

dependencies = [
('taggit', '0002_auto_20150616_2121'),
('app_manager', '0003_auto_20171002_0445'),
Expand Down
1 change: 0 additions & 1 deletion cartoview/app_manager/migrations/0005_delete_apptag.py
Expand Up @@ -5,7 +5,6 @@


class Migration(migrations.Migration):

dependencies = [
('app_manager', '0004_auto_20171002_0446'),
]
Expand Down
Expand Up @@ -6,7 +6,6 @@


class Migration(migrations.Migration):

dependencies = [
('app_manager', '0005_delete_apptag'),
]
Expand Down
Expand Up @@ -5,7 +5,6 @@


class Migration(migrations.Migration):

dependencies = [
('app_manager', '0006_app_default_config'),
]
Expand Down
2 changes: 1 addition & 1 deletion cartoview/app_manager/migrations/0008_appinstance_logo.py
Expand Up @@ -2,11 +2,11 @@
from __future__ import unicode_literals

from django.db import migrations, models

import cartoview.app_manager.models


class Migration(migrations.Migration):

dependencies = [
('app_manager', '0007_auto_20180128_0116'),
]
Expand Down
5 changes: 3 additions & 2 deletions cartoview/app_manager/migrations/0009_auto_20180920_1659.py
Expand Up @@ -5,7 +5,6 @@


class Migration(migrations.Migration):

dependencies = [
('app_manager', '0008_appinstance_logo'),
]
Expand All @@ -14,7 +13,9 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='appstore',
name='server_type',
field=models.CharField(default='Geoserver', max_length=256, choices=[('Exchange', 'Exchange'), ('Geoserver', 'Geoserver'), ('QGISServer', 'QGISServer')]),
field=models.CharField(default='Geoserver', max_length=256,
choices=[('Exchange', 'Exchange'), ('Geoserver', 'Geoserver'),
('QGISServer', 'QGISServer')]),
),
migrations.AlterField(
model_name='app',
Expand Down

0 comments on commit 5fb6227

Please sign in to comment.