예제 #1
0
파일: ext.py 프로젝트: nvbn/django-catalog
    def tree_related(self, request, match):
        # m2m tree editor for RelatedField
        m2m = self._get_m2m(match)
        if m2m is None:
            raise Http404
        obj_id = match[1]

        instance = get_object_or_404(m2m['base_model'], tree_id=obj_id)
        related_manager = getattr(instance, m2m['fk_attr'])

        tree = []
        if request.method == 'POST':
            parent = request.REQUEST.get('node', 'root')

            for treeitem in TreeItem.manager.json_children(parent):
                data = get_tree_for_model(
                    treeitem.content_object,
                    self._registry.get(treeitem.content_object.__class__,
                                       None))

                # add checkboxes where they can be placed
                if treeitem.content_type.model == m2m[
                        'rel_model'].__name__.lower():
                    data.update({
                        'checked':
                        treeitem.content_object.id
                        in related_manager.values_list('id', flat=True),
                    })
                tree.append(data)
        return HttpResponse(simplejson.dumps(tree, default=encode_decimal),
                            mimetype='text/json')
예제 #2
0
    def tree_related(self, request, match):
        # m2m tree editor for RelatedField
        m2m = self._get_m2m(match)
        if m2m is None:
            raise Http404
        obj_id = match[1]

        instance = get_object_or_404(m2m['base_model'], tree_id=obj_id)
        related_manager = getattr(instance, m2m['fk_attr'])

        tree = []
        if request.method == 'POST':
            parent = request.REQUEST.get('node', 'root')

            for treeitem in TreeItem.manager.json_children(parent):
                data = get_tree_for_model(treeitem.content_object,
                    self._registry.get(treeitem.content_object.__class__, None))
                
                # add checkboxes where they can be placed
                if treeitem.content_type.model == m2m['rel_model'].__name__.lower():
                    data.update({
                        'checked': treeitem.content_object.id in related_manager.values_list('id', flat=True),
                    })
                tree.append(data)
        return HttpResponse(simplejson.dumps(tree, default=encode_decimal), mimetype='text/json')
예제 #3
0
    def tree(self, request, match):
        '''Return json encoded tree'''
        tree = []
        if request.method == 'POST':
            parent = request.REQUEST.get('node', 'root')

            for treeitem in TreeItem.manager.json_children(parent):
                data = get_tree_for_model(treeitem.content_object,
                    self._registry.get(treeitem.content_object.__class__, None))
                if data is not None:
                    tree.append(data)

        return HttpResponse(simplejson.dumps(tree, default=encode_decimal))
예제 #4
0
파일: ext.py 프로젝트: nvbn/django-catalog
    def tree(self, request, match):
        '''Return json encoded tree'''
        tree = []
        if request.method == 'POST':
            parent = request.REQUEST.get('node', 'root')

            for treeitem in TreeItem.manager.json_children(parent):
                data = get_tree_for_model(
                    treeitem.content_object,
                    self._registry.get(treeitem.content_object.__class__,
                                       None))
                if data is not None:
                    tree.append(data)

        return HttpResponse(simplejson.dumps(tree, default=encode_decimal))