Skip to content

Commit

Permalink
- DB consistency checks
Browse files Browse the repository at this point in the history
  • Loading branch information
afabiani committed Apr 26, 2018
1 parent 32ddf3c commit 65bcf74
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 8 deletions.
15 changes: 12 additions & 3 deletions geonode/base/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
from bootstrap3_datetime.widgets import DateTimePicker
from modeltranslation.forms import TranslationModelForm

from geonode.base.models import TopicCategory, Region, License
from geonode.base.models import HierarchicalKeyword, TopicCategory, Region, License
from geonode.people.models import Profile
from geonode.base.enumerations import ALL_LANGUAGES
from django.contrib.auth.models import Group
Expand Down Expand Up @@ -424,9 +424,18 @@ def unicode_escape(unistr):
if not isinstance(_k, basestring):
for _kk in [x.strip() for x in _k]:
_kk = HTMLParser.HTMLParser().unescape(unicode_escape(_kk))
_unsescaped_kwds.append(_kk)
# _hk = HierarchicalKeyword.objects.extra(where=["%s LIKE name||'%%'"], params=[_kk])
_hk = HierarchicalKeyword.objects.filter(name__contains='%s' % _kk.strip())
if _hk and len(_hk) > 0:
_unsescaped_kwds.append(_hk[0])
else:
_unsescaped_kwds.append(_kk)
else:
_unsescaped_kwds.append(_k)
_hk = HierarchicalKeyword.objects.filter(name__iexact=_k)
if _hk and len(_hk) > 0:
_unsescaped_kwds.append(_hk[0])
else:
_unsescaped_kwds.append(_k)
return _unsescaped_kwds

class Meta:
Expand Down
14 changes: 9 additions & 5 deletions geonode/layers/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -581,8 +581,6 @@ def file_upload(filename,
layer.upload_session = upload_session

# update with new information
db_layer = Layer.objects.get(id=layer.id)

defaults['upload_session'] = upload_session
defaults['title'] = defaults.get('title', None) or layer.title
defaults['abstract'] = defaults.get('abstract', None) or layer.abstract
Expand All @@ -597,9 +595,15 @@ def file_upload(filename,
defaults['license'] = defaults.get('license', None) or layer.license
defaults['category'] = defaults.get('category', None) or layer.category

db_layer.update(**defaults)
db_layer.refresh_from_db()
layer = db_layer
try:
db_layer = Layer.objects.get(id=layer.id)
db_layer = Layer.objects.filter(id=layer.id)
db_layer.update(**defaults)
layer.refresh_from_db()
except Layer.DoesNotExist:
import traceback
tb = traceback.format_exc()
logger.error(tb)

# Pass the parameter overwrite to tell whether the
# geoserver_post_save_signal should upload the new file or not
Expand Down

0 comments on commit 65bcf74

Please sign in to comment.