Exemple #1
0
    def inline(self, request, prefix, app_label, model_name, **kwargs):
        """
        inline model editing
        """
        if request.method == "POST" and self._meta.inline:
            fields = self.get_field_list(app_label=app_label,
                                         model_name=model_name)
            model = get_model(app_label, model_name)
            pk_field = model._meta.pk.name
            pk = request.POST.get(pk_field + 'primarykey')
            instance = get_object_or_404(model, pk=pk)

            inline = []
            for field in fields:
                field_object = model._meta.get_field(field)
                field_type = field_object.__class__.__name__
                if field_type in Grid.INLINE_EDITABLE_FIELDS and not field_object.primary_key and field_object.editable:
                    inline.append(field)

            class InlineForm(forms.ModelForm):
                class Meta:
                    model = get_model(app_label, model_name)
                    fields = inline[:]

            aed = AED(request,
                      app_label,
                      model_name,
                      'djgrid/aed_base.html',
                      InlineForm,
                      pk,
                      force_ajax=True,
                      action='edit')
            aed.process_request()
            result = {'status': 'ok'}
            return HttpResponse(simplejson.dumps(result),
                                mimetype='application/json')
        else:
            return HttpResponse('operation is not allowed')
 def inline(self, request,prefix, app_label, model_name, **kwargs):
     """
     inline model editing
     """
     if request.method=="POST" and self._meta.inline:
         fields = self.get_field_list(app_label = app_label,model_name = model_name)
         model = get_model(app_label, model_name)
         pk_field = model._meta.pk.name
         pk = request.POST.get(pk_field+'primarykey')
         instance = get_object_or_404(model, pk = pk)
         
         inline = []
         for field in fields:
             field_object = model._meta.get_field(field)
             field_type = field_object.__class__.__name__
             if field_type in Grid.INLINE_EDITABLE_FIELDS and not field_object.primary_key and field_object.editable:
                 inline.append(field)
         
         class InlineForm(forms.ModelForm):
             class Meta:
                 model = get_model(app_label,model_name)
                 fields = inline[:]
       
         aed = AED(request,
                   app_label,
                   model_name,
                   'djgrid/aed_base.html',
                   InlineForm,
                   pk,
                   force_ajax = True,
                   action = 'edit')
         aed.process_request() 
         result = {'status':'ok'}
         return HttpResponse(simplejson.dumps(result),mimetype='application/json')
     else:
         return HttpResponse('operation is not allowed')
 def actionview(self, request, prefix, app_label, model_name, object_id = None, action = None):
     """
     model instance add-edit-delete operations
     """
     
     class InstantForm(forms.ModelForm):
         formfield_callback = self.make_custom_field
         class Meta:
             model = get_model(app_label,model_name)
             
     url_add = reverse('djgrid-createview',kwargs={'prefix':self._meta.prefix,'app_label': app_label,'model_name': model_name})
     if object_id:
         url_edit = reverse('djgrid-actionview',kwargs={'prefix':self._meta.prefix,'app_label': app_label,'model_name': model_name,'object_id':object_id, 'action':'edit'})
         url_delete = reverse('djgrid-actionview',kwargs={'prefix':self._meta.prefix,'app_label': app_label,'model_name': model_name,'object_id':object_id, 'action':'delete'})
     else:
         url_edit = None
         url_delete = None
             
     aed = AED(request,
               app_label,
               model_name,
               'djgrid/aed_base.html',
               InstantForm,
               object_id,
               extra_initial = {},
               extra_context = {'WYSIWYG_HEIGHT':self._meta.wysiwyg_height},
               force_ajax = False, 
               action = action, 
               url_add = url_add,
               url_edit = url_edit, 
               url_delete = url_delete)
     
     success_redirect_url = reverse('djgrid-listview',kwargs={'prefix':self._meta.prefix,'app_label': app_label,'model_name': model_name})
     aed.add_a_redirect(success_redirect_url)
     aed.add_e_redirect(success_redirect_url)
     aed.add_d_redirect(success_redirect_url)  
     
     return aed.process_request()
Exemple #4
0
    def actionview(self,
                   request,
                   prefix,
                   app_label,
                   model_name,
                   object_id=None,
                   action=None):
        """
        model instance add-edit-delete operations
        """
        class InstantForm(forms.ModelForm):
            formfield_callback = self.make_custom_field

            class Meta:
                model = get_model(app_label, model_name)

        url_add = reverse('djgrid-createview',
                          kwargs={
                              'prefix': self._meta.prefix,
                              'app_label': app_label,
                              'model_name': model_name
                          })
        if object_id:
            url_edit = reverse('djgrid-actionview',
                               kwargs={
                                   'prefix': self._meta.prefix,
                                   'app_label': app_label,
                                   'model_name': model_name,
                                   'object_id': object_id,
                                   'action': 'edit'
                               })
            url_delete = reverse('djgrid-actionview',
                                 kwargs={
                                     'prefix': self._meta.prefix,
                                     'app_label': app_label,
                                     'model_name': model_name,
                                     'object_id': object_id,
                                     'action': 'delete'
                                 })
        else:
            url_edit = None
            url_delete = None

        aed = AED(request,
                  app_label,
                  model_name,
                  'djgrid/aed_base.html',
                  InstantForm,
                  object_id,
                  extra_initial={},
                  extra_context={'WYSIWYG_HEIGHT': self._meta.wysiwyg_height},
                  force_ajax=False,
                  action=action,
                  url_add=url_add,
                  url_edit=url_edit,
                  url_delete=url_delete)

        success_redirect_url = reverse('djgrid-listview',
                                       kwargs={
                                           'prefix': self._meta.prefix,
                                           'app_label': app_label,
                                           'model_name': model_name
                                       })
        aed.add_a_redirect(success_redirect_url)
        aed.add_e_redirect(success_redirect_url)
        aed.add_d_redirect(success_redirect_url)

        return aed.process_request()