Skip to content

Commit

Permalink
Merge pull request #25 from BB-Open/fix_None_display
Browse files Browse the repository at this point in the history
Fixed 'None' displayed for the Description in ajaxselectWidget
  • Loading branch information
volkerjaenisch committed Mar 28, 2018
2 parents 0665ff4 + 8078f21 commit f1a0325
Show file tree
Hide file tree
Showing 15 changed files with 45 additions and 11 deletions.
18 changes: 18 additions & 0 deletions src/pkan/dcatapde/content/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,21 @@ def title_from_title_field(self):
except KeyError:
continue
return title

def desc_from_desc_field(self):
desc = None
struct = IStructure(self)
for desc_field in struct.desc_field:
try:
all_descs = getattr(self, desc_field)
if not all_descs:
continue
if isinstance(all_descs, dict):
desc = unicode(all_descs.items()[0][1])
elif isinstance(all_descs, list):
desc = unicode(all_descs[0])
else:
desc = unicode(all_descs)
except KeyError:
continue
return desc
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dcat_catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()


class DCATCatalogDefaultFactory(DexterityFactory):
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dcat_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()


class DCATDatasetDefaultFactory(DexterityFactory):
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dcat_distribution.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()


class DCATDistributionDefaultFactory(DexterityFactory):
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dct_licensedocument.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()

def title_for_vocabulary(self):
"""Return a title suitable for vocabulary terms."""
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dct_location.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()

def title_for_vocabulary(self):
"""Return a title suitable for vocabulary terms."""
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dct_mediatypeorextent.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()


class DCTMediaTypeOrExtentDefaultFactory(DexterityFactory):
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dct_rightsstatement.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()

def title_for_vocabulary(self):
"""Return a title suitable for vocabulary terms."""
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/dct_standard.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()

def title_for_vocabulary(self):
"""Return a title suitable for vocabulary terms."""
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/foaf_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()


class FOAFAgentDefaultFactory(DexterityFactory):
Expand Down
3 changes: 3 additions & 0 deletions src/pkan/dcatapde/content/rdfs_literal.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ class RDFLiteral(Item, DCATMixin):
def Title(self):
return self.title_from_title_field()

def Description(self):
return self.desc_from_desc_field()


def literal2plone(literal, field=None):
val = literal.toPython()
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/skos_concept.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()


class SKOSConceptDefaultFactory(DexterityFactory):
Expand Down
2 changes: 1 addition & 1 deletion src/pkan/dcatapde/content/skos_conceptscheme.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def Title(self):
return self.title_from_title_field()

def Description(self):
return unicode(self.dct_description)
return self.desc_from_desc_field()


class SKOSConceptSchemeDefaultFactory(DexterityFactory):
Expand Down
12 changes: 12 additions & 0 deletions src/pkan/dcatapde/harvesting/source_type/rdf.py
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,18 @@ def create_dx_obj(
)
return brains[0].getObject()

# Handle not given descriptions to prevent u'None' brains
desc_found = False
for desc_field in struct.desc_field:
if desc_field in obj_data:
desc_found = True
break

if not desc_found:
for desc_field in struct.desc_field:
obj_data[desc_field] = None
obj_data['description'] = None

# Create an instance of the node as dexterity object
try:
obj = content.create(
Expand Down
1 change: 1 addition & 0 deletions src/pkan/dcatapde/structure/structure.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ class StructBase(object):
portal_type = None
# List of fields that can act as title for dx object creation
title_field = ['dct_title']
desc_field = ['dct_description']

# caching
_fields_in_order = None
Expand Down

0 comments on commit f1a0325

Please sign in to comment.