Example #1
0
    def post(self, *args, **kwargs):
        super().post(*args, **kwargs)
        try:
            self.delete_obj()
            self.db.remove()
        except (DatabaseObjectNotFound) as e:
            log.debug(str(e))
            raise HTTPError(404)
        except Exception as e:
            log.error(str(e))
            raise HTTPError(500)

        return self.redirect(self.get_success_url())
Example #2
0
    def get_json_data(self, context, **kwargs):

        if len(kwargs) > 0:
            context = dict(context, **kwargs)

        obj_name = self.get_context_object_name()

        try:
            context[obj_name] = sqlalchemy_orm_to_dict(context[obj_name])
        except RuntimeError:
            log.error("%r is not JSON serializable" % (context[obj_name]))
            context[obj_name] = dict

        return json.dumps(context, default=str)
Example #3
0
 def post(self, *args, **kwargs):
     super().post(*args, **kwargs)
     try:
         self.delete_obj()
         self.db.remove()
         return self.render_json(context={'success': True, 'errors': None})
     except (RuntimeError, DatabaseObjectNotFound) as e:
         log.debug(str(e))
         return self.render_json_error(errors=[str(e)])
     except Exception as e:
         log.error(str(e))
         return self.render_json_error(
             errors=['Something really bad happens..']
         )
Example #4
0
 def get(self, *args, **kwargs):
     super().get(*args, **kwargs)
     try:
         context = self.get_context_data(**kwargs)
         obj_name = self.get_context_object_name()
         context[obj_name] = sqlalchemy_orm_to_dict(context[obj_name])
         return self.render_json(context)
     except (RuntimeError, DatabaseObjectNotFound) as e:
         log.debug(str(e))
         return self.render_json_error(errors=[str(e)])
     except Exception as e:
         log.error(str(e))
         return self.render_json_error(
             errors=['Something really bad happens..']
         )
Example #5
0
 def form_valid(self, form):
     try:
         object = self.get_object()
         for key, val in form.data.items():
             if hasattr(object, key):
                 setattr(object, key, val)
         self.db.commit()
         self.db.flush()
         return self.render_json(context={'success': True, 'errors': None, 'form': None, 'object': object })
     except DatabaseObjectNotFound as e:
         log.debug(str(e))
         self.render_json_error(errors=[str(e)])
     except Exception as e:
         self.db.rollback()
         log.error("Error while querying database in %s: %r" % (self.__class__.__name__, e))
         return self.render_json_error(errors=['Database query error'])
Example #6
0
    def get_json_data(self, context, **kwargs):

        if len(kwargs) > 0:
            context = dict(context, **kwargs)

        obj_name = self.get_context_object_name()
        new_data = []

        if context["is_paginated"]:
            context["page_obj"] = context["page_obj"].as_dict

        if type(context[obj_name]) == list:
            for item in context[obj_name]:
                try:
                    new_data.append(sqlalchemy_orm_to_dict(item))
                except RuntimeError:
                    log.error("%r is not JSON serializable" % (item))

        context[obj_name] = new_data
        return json.dumps(context, default=str)
Example #7
0
    def get_json_data(self, context, **kwargs):
        if len(kwargs) > 0:
            context = dict(context, **kwargs)

        if 'form' in context and context['form'] is not None:
            form_html = ''
            for item in context['form']:
                form_html += str(item)
            context['form'] = form_html

        obj_name = self.get_context_object_name()

        if obj_name in context:
            try:
                context[obj_name] = sqlalchemy_orm_to_dict(context[obj_name])
            except RuntimeError:
                log.error("%r is not JSON serializable" % (context[obj_name]))
                context[obj_name] = dict

        return json.dumps(context, default=str)