Skip to content

Commit

Permalink
Merge branch 'master' into 4907_grouping_card_component
Browse files Browse the repository at this point in the history
  • Loading branch information
apeters committed Jul 10, 2019
2 parents 087db88 + 290790b commit 05c18a0
Show file tree
Hide file tree
Showing 27 changed files with 797 additions and 150 deletions.
15 changes: 10 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,14 @@ RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" >> /etc
apt-get update -y &&\
apt-get install -y postgresql-client-9.6

# Install Yarn components
COPY ./arches/install/package.json ${ARCHES_ROOT}/arches/install/package.json
COPY ./arches/install/.yarnrc ${ARCHES_ROOT}/arches/install/.yarnrc
COPY ./arches/install/yarn.lock ${ARCHES_ROOT}/arches/install/yarn.lock
WORKDIR ${ARCHES_ROOT}/arches/install
RUN mkdir -p ${ARCHES_ROOT}/arches/app/media/packages
RUN yarn install

## Install virtualenv
WORKDIR ${WEB_ROOT}

Expand Down Expand Up @@ -129,9 +137,8 @@ WORKDIR ${ARCHES_ROOT}
RUN . ../ENV/bin/activate \
&& pip install -e . --no-binary :all:

# Install Yarn components
COPY ./package.json ${ARCHES_ROOT}/package.json
RUN yarn install
# Set default workdir
WORKDIR ${ARCHES_ROOT}

COPY docker/gunicorn_config.py ${ARCHES_ROOT}/gunicorn_config.py
COPY docker/settings_local.py ${ARCHES_ROOT}/arches/settings_local.py
Expand All @@ -143,5 +150,3 @@ CMD ["run_arches"]
# Expose port 8000
EXPOSE 8000

# Set default workdir
WORKDIR ${ARCHES_ROOT}
10 changes: 9 additions & 1 deletion arches/app/datatypes/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,11 +252,19 @@ def get_pref_label(self, nodevalue):
"""
return None

def get_tile_data(self, tile):
if tile.data is not None and len(tile.data.keys()) > 0:
return tile.data
elif tile.provisionaledits is not None and len(tile.provisionaledits.keys()) == 1:
userid = tile.provisionaledits.keys()[0]
return tile.provisionaledits[userid]['value']

def get_display_value(self, tile, node):
"""
Returns a list of concept values for a given node
"""
return unicode(tile.data[str(node.nodeid)])
data = self.get_tile_data(tile)
return unicode(data[str(node.nodeid)])

def get_search_terms(self, nodevalue, nodeid=None):
"""
Expand Down
10 changes: 6 additions & 4 deletions arches/app/datatypes/concept_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,11 @@ def get_pref_label(self, nodevalue, lang='en-US'):
return get_preflabel_from_valueid(nodevalue, lang)['value']

def get_display_value(self, tile, node):
if tile.data[str(node.nodeid)] is None or tile.data[str(node.nodeid)].strip() == '':
data = self.get_tile_data(tile)
if data[str(node.nodeid)] is None or data[str(node.nodeid)].strip() == '':
return ''
else:
return self.get_value(uuid.UUID(tile.data[str(node.nodeid)])).value
return self.get_value(uuid.UUID(data[str(node.nodeid)])).value

def append_search_filters(self, value, node, query, request):
try:
Expand Down Expand Up @@ -270,8 +271,9 @@ def transform_export_values(self, value, *args, **kwargs):

def get_display_value(self, tile, node):
new_values = []
if tile.data[str(node.nodeid)]:
for val in tile.data[str(node.nodeid)]:
data = self.get_tile_data(tile)
if data[str(node.nodeid)]:
for val in data[str(node.nodeid)]:
new_val = self.get_value(uuid.UUID(val))
new_values.append(new_val.value)
return ','.join(new_values)
Expand Down
14 changes: 9 additions & 5 deletions arches/app/datatypes/datatypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -1304,7 +1304,8 @@ def append_to_document(self, document, nodevalue, nodeid, tile, provisional=Fals
document['strings'].append({'string': domain_text, 'nodegroup_id': tile.nodegroup_id, 'provisional': provisional})

def get_display_value(self, tile, node):
return self.get_option_text(node, tile.data[str(node.nodeid)])
data = self.get_tile_data(tile)
return self.get_option_text(node, data[str(node.nodeid)])

def transform_export_values(self, value, *args, **kwargs):
ret = ''
Expand Down Expand Up @@ -1391,8 +1392,9 @@ def append_to_document(self, document, nodevalue, nodeid, tile, provisional=Fals

def get_display_value(self, tile, node):
new_values = []
if tile.data[str(node.nodeid)] is not None:
for val in tile.data[str(node.nodeid)]:
data = self.get_tile_data(tile)
if data[str(node.nodeid)] is not None:
for val in data[str(node.nodeid)]:
option = self.get_option_text(node, val)
new_values.append(option)
return ','.join(new_values)
Expand Down Expand Up @@ -1485,7 +1487,8 @@ def validate(self, value, row_number=None, source=''):
return errors

def get_display_value(self, tile, node):
nodevalue = tile.data[str(node.nodeid)]
data = self.get_tile_data(tile)
nodevalue = data[str(node.nodeid)]
resource_names = self.get_resource_names(nodevalue)
return ', '.join(resource_names)

Expand Down Expand Up @@ -1566,7 +1569,8 @@ def validate(self, value, row_number=None, source=''):
def get_display_value(self, tile, node):
datatype_factory = DataTypeFactory()
value_node = models.Node.objects.get(nodeid=node.config['nodeid'])
tileid = tile.data[str(node.pk)]
data = self.get_tile_data(tile)
tileid = data[str(node.pk)]
if tileid:
value_tile = models.TileModel.objects.get(tileid=tileid)
datatype = datatype_factory.get_instance(value_node.datatype)
Expand Down
19 changes: 16 additions & 3 deletions arches/app/functions/primary_descriptors.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,32 @@
from arches.app.models.tile import Tile
from arches.app.datatypes.datatypes import DataTypeFactory


class PrimaryDescriptorsFunction(BaseFunction):

def get_primary_descriptor_from_nodes(self, resource, config):
try:
if 'nodegroup_id' in config and config['nodegroup_id'] != '' and config['nodegroup_id'] is not None:
for tile in models.TileModel.objects.filter(nodegroup_id=uuid.UUID(config['nodegroup_id']), sortorder=0).filter(resourceinstance_id=resource.resourceinstanceid):
tiles = models.TileModel.objects.filter(
nodegroup_id=uuid.UUID(config['nodegroup_id']),
sortorder=0).filter(resourceinstance_id=resource.resourceinstanceid)
if len(tiles) == 0:
tiles = models.TileModel.objects.filter(
nodegroup_id=uuid.UUID(config['nodegroup_id'])).filter(
resourceinstance_id=resource.resourceinstanceid)
for tile in tiles:
for node in models.Node.objects.filter(nodegroup_id=uuid.UUID(config['nodegroup_id'])):
if str(node.nodeid) in tile.data:
if len(tile.data.keys()) > 0:
data = tile.data
elif tile.provisionaledits is not None and len(tile.provisionaledits.keys()) == 1:
userid = tile.provisionaledits.keys()[0]
data = tile.provisionaledits[userid]['value']
if str(node.nodeid) in data:
datatype_factory = DataTypeFactory()
datatype = datatype_factory.get_instance(node.datatype)
value = datatype.get_display_value(tile, node)
config['string_template'] = config['string_template'].replace('<%s>' % node.name, value)
except ValueError as e:
print e, 'invalid nodegroupid participating in descriptor function.'
print(e, 'invalid nodegroupid participating in descriptor function.')

return config['string_template']
Loading

0 comments on commit 05c18a0

Please sign in to comment.