예제 #1
0
 def get(self, request):
     id = request.GET.get("id")
     if id:
         item = items_filter(request.user, id=id)[0]
         itemf = ItemForm(user=request.user, instance=item)
         return render(request, 'itemUpdate.html', locals())
     else:
         itemf = ItemForm(user=request.user)
         return render(request, 'itemCreate.html', locals())
예제 #2
0
 def delete(self, request):
     try:
         id = request.GET.get("id")
         item = items_filter(request.user, id=id)
         item.delete()
         RecordSysLog(request, "delete",
                      "Item").record_syslog("<%s>" % (item.title))
         return HttpResponse(status=200)
     except Exception as e:
         return HttpResponse(str(e), status=400)
예제 #3
0
 def post(self, request):
     error_msg = ""
     try:
         itf = ItemForm(request.POST, user=request.user)
         if itf.is_valid():
             # 根据请求参数id查询模型数据是否存在
             id = request.GET.get('id')
             result = items_filter(request.user, id=id)
             # 不存在则新增数据
             if not result:
                 itf.save()
                 # logger.error(itf.fields.title)
                 RecordSysLog(request, "create", "Item").record_syslog(
                     "<{title}> 用户名[{username}] 密码[{password}] ".format(
                         **itf.cleaned_data))
                 return HttpResponseRedirect(reverse("dashboard:item-list"))
             # 存在则修改数据
             else:
                 item_obj = result[0]
                 d = itf.cleaned_data
                 for key, value in d.items():
                     old_value = getattr(item_obj, key)
                     logger.debug("key:[%s],value:[%s]" % (key, value))
                     if key == 'password':
                         setattr(item_obj, key, value)
                         if Item.decode_passwd(old_value) != value:
                             RecordSysLog(
                                 request, "update", "Item").record_syslog(
                                     "<%s> [%s]: %s -> %s" %
                                     (d['title'], key,
                                      Item.decode_passwd(old_value), value))
                         continue
                     if old_value != value:
                         setattr(item_obj, key, value)
                         logger.info("set[%s] to [%s]" % (key, value))
                         RecordSysLog(
                             request, "update", "Item").record_syslog(
                                 "<%s> [%s]: %s -> %s" %
                                 (d['title'], key, old_value, value))
                 item_obj.save()
                 return HttpResponseRedirect(
                     reverse("dashboard:item-list") +
                     "?gid=%s" % item_obj.group_id)
         else:
             error_msg = itf.errors.as_json()
     except Exception as e:
         logger.error(e)
         error_msg += str(e)
         logger.error(traceback.format_exc())
     return HttpResponse("操作失败:{}".format(error_msg), status=500)
예제 #4
0
    def post(self, request):
        error_msg = ""
        try:
            item_id = request.GET.get("item_id")
            key = request.POST.getlist('key')
            value = request.POST.getlist('value')
            fields_list = [{key: value} for key, value in zip(key, value)]
            item = items_filter(request.user, id=item_id)[0]
            CustomKV.objects.filter(item=item).delete()  # 全部删除

            for each_field in fields_list:
                for key, value in each_field.items():
                    if all((key, value)):
                        CustomKV.objects.create(item=item,
                                                key=key,
                                                value=value)

            return HttpResponseRedirect(
                reverse('dashboard:fields') + '?item_id={}'.format(item.id))

        except Exception as e:
            logger.error(e)
            error_msg += str(e)
            return JsonResponse({'msg': error_msg}, status=500)
예제 #5
0
 def get_queryset(self):
     gid = self.request.GET.get("gid")
     items = items_filter(self.request.user)
     if gid:
         items = items.filter(group=gid)
     return items
예제 #6
0
 def get(self, request):
     item_id = request.GET.get("item_id")
     if item_id:
         item = items_filter(request.user, id=item_id)[0]
         fields = CustomKV.objects.filter(item=item)
         return render(request, 'fields.html', locals())