def get_tiles(self, graph_id=None, resourceinstanceids=None, **kwargs): """ Returns a dictionary of tiles keyed by their resourceinstanceid { 'resourcs instance UUID': [tile list], ... } """ user = kwargs.get('user', None) permitted_nodegroups = [] if user: permitted_nodegroups = [ str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm( user, 'models.read_nodegroup') ] if (graph_id is None or graph_id is False) and resourceinstanceids is None: raise MissingGraphException( _("Must supply either a graph id or a list of resource instance ids to export" )) if graph_id: filters = {'resourceinstance__graph_id': graph_id} if user: filters['nodegroup_id__in'] = permitted_nodegroups self.tiles = models.TileModel.objects.filter(**filters) self.graph_id = graph_id else: filters = {'resourceinstance_id__in': resourceinstanceids} if user: filters['nodegroup_id__in'] = permitted_nodegroups self.tiles = models.TileModel.objects.filter(**filters) try: self.graph_id = self.tiles[0].resourceinstance.graph_id except: self.graph_id = models.ResourceInstance.objects.get( resourceinstanceid=resourceinstanceids[0]).graph_id iso_date = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") self.graph_model = models.GraphModel.objects.get(graphid=self.graph_id) self.file_prefix = self.graph_model.name.replace(' ', '_') self.file_name = '{0}_{1}'.format(self.file_prefix, iso_date) for tile in self.tiles: try: self.resourceinstances[tile.resourceinstance_id].append(tile) except: self.resourceinstances[tile.resourceinstance_id] = [] self.resourceinstances[tile.resourceinstance_id].append(tile) return self.resourceinstances
def deletable_nodegroups(self): from arches.app.utils.permission_backend import get_nodegroups_by_perm return set( str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm( self.user, ['models.delete_nodegroup'], any_perm=True))
def get_permitted_nodegroups(user): return [ str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm(user, "models.read_nodegroup") ]
def get_permitted_nodegroups(user): return [str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm(user, 'models.read_nodegroup')]
def viewable_nodegroups(self): from arches.app.utils.permission_backend import get_nodegroups_by_perm return set( str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm( self.user, ["models.read_nodegroup"], any_perm=True))
def get_permitted_nodegroups(self, user): return [ str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm( user, 'models.read_nodegroup') ]