Пример #1
0
    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
Пример #2
0
 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))
Пример #3
0
def get_permitted_nodegroups(user):
    return [
        str(nodegroup.pk)
        for nodegroup in get_nodegroups_by_perm(user, "models.read_nodegroup")
    ]
Пример #4
0
def get_permitted_nodegroups(user):
    return [str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm(user, 'models.read_nodegroup')]
Пример #5
0
    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))
Пример #6
0
 def get_permitted_nodegroups(self, user):
     return [
         str(nodegroup.pk) for nodegroup in get_nodegroups_by_perm(
             user, 'models.read_nodegroup')
     ]