Beispiel #1
0
def document_basic_form_delete(request, document_id):
    if request.method == "DELETE":
        try:
            document_basic_form = DocumentBasicForm.objects.get(id=document_id)
            document_basic_form.delete()
            return make_response(status=200, content=json.dumps({'success': True, 'msg': "양식을 삭제하는데 성공하였습니다."}))

        except DocumentBasicForm.DoesNotExist:
            return make_response(status=400, content=json.dumps({'success': False, 'msg': '문서가 서버에 존재하지 않습니다.\n관리자에게 문의하세요.'}))

        except:
            return make_response(status=400, content=json.dumps({'success': False, 'msg': '문서를 삭제하는데 실패하였습니다.\n다시 시도해주세요.'}))
Beispiel #2
0
def document_basic_form(request, document_id):
    if request.method == "GET":
        attach_info = DocumentBasicForm.objects.get(id=document_id)
        filename = os.path.join(settings.MEDIA_ROOT, attach_info.attach.name)

        if not os.path.exists(settings.MEDIA_ROOT):
            return make_response(status=400, content=json.dumps({'success': False, 'msg': "NAS서버와 연결이 해제되어 파일 업로드가 불가능합니다.\n관리자에게 문의 바랍니다."}))

        elif not os.path.exists(filename): 
            return make_response(status=400, content=json.dumps({'success': False, 'msg': "해당 문서가 서버에 존재하지 않아 다운로드 할 수 없습니다.\n관리자에게 문의 바랍니다."}))
        
        else:
            return make_response(status=200, content=json.dumps({'success': True}))
Beispiel #3
0
def document_form_upload_apply(request):
    title = request.POST['title']
    attach_name = request.POST['qqfilename']
    check_code = request.POST['checkCode']
    description = request.POST['desc']
    attach=request.FILES['qqfile']
    content_size=request.FILES['qqfile'].size
    content_type=request.FILES['qqfile'].content_type
    
    try:
        document_basic_form = DocumentBasicForm(title=title, attach_name=attach_name, attach=attach, check_code=check_code, description=description, content_size=content_size, content_type=content_type, creator_id=request.session['id'])
        document_basic_form.save()
        return make_response(status=200, content=json.dumps({'success': True, 'msg': "양식 등록에 성공 하였습니다."}))

    except:
        return make_response(status=400, content=json.dumps({'success': False, 'msg': "양식 등록에 실패하였습니다.\n다시 시도해주시기 바랍니다."}))
Beispiel #4
0
def get_mnfacture_id(request, mnfacture):
    try:
        mnfacture_id = Mnfacture.objects.get(manafacture=mnfacture).id
        return make_response(status=200,
                             content=json.dumps({
                                 'success': True,
                                 'mnfacture_id': mnfacture_id
                             }))
    except:
        return make_response(status=400,
                             content=json.dumps({
                                 'success':
                                 False,
                                 'msg':
                                 "제조사 정보를 정확히 가지고 오지 못하였습니다.\n다시 시도해주시기 바랍니다."
                             }))
Beispiel #5
0
def document_attach_lists(request, client_id):
    documents = Document.objects.filter(client_id=client_id).order_by('-id')
    if documents.exists():
        data = []
        for document in documents:
            if document.project != 0:
                project = str(Project.objects.get(id=document.project))
            else:
                project = 0
            created_at = (document.created_at).strftime('%Y-%m-%d')
            product = str(document.product)
            result = {'id': document.id, 'category':document.get_category_display(), 'creator': str(document.creator), 'attach_name': document.attach_name, 'created_at': created_at, 'project': project, 'product': product, 'login_member_name': request.session['member_name']}
            data.append(result)
        return make_response(status=200, content=json.dumps({'success': True, 'data': data}))
    else:
        return make_response(status=400, content=json.dumps({'success': False, 'msg': "해당 고객사의 프로젝트가 존재하지 않습니다."}))
Beispiel #6
0
def document_download(request, document_id):
    attach_info = Document.objects.get(id=document_id)
    filename = os.path.join(settings.MEDIA_ROOT, attach_info.attach.name)
    response = ""

    if not os.path.exists(settings.MEDIA_ROOT):
        return make_response(status=400, content=json.dumps({'success': False, 'msg': "NAS서버와 연결이 해제되어 파일 업로드가 불가능합니다.\n관리자에게 문의 바랍니다."}))

    if not os.path.exists(filename): 
        return make_response(status=400, content=json.dumps({'success': False, 'msg': "해당 문서가 서버에 존재하지 않아 다운로드 할 수 없습니다.\n관리자에게 문의 바랍니다."}))
    else:
        with open(filename, 'rb') as f:
            response = HttpResponse(FileWrapper(
                f), content_type=attach_info.attach)
            response['Content-Disposition'] = 'attachment; filename*=UTF-8\'\'%s' % urllib.parse.quote(
                attach_info.attach_name.encode('utf-8'))
        return response
Beispiel #7
0
def client_project_lists(request, client_id):
    reports = Project.objects.filter(client_id=client_id).values('id', 'title')
    if reports.exists():
        reports = list(reports)
        return make_response(status=200,
                             content=json.dumps({
                                 'success': True,
                                 'reports': reports
                             }))
    else:
        return make_response(status=400,
                             content=json.dumps({
                                 'success':
                                 False,
                                 'msg':
                                 "해당 고객사의 프로젝트가 존재하지 않습니다."
                             }))
Beispiel #8
0
def document_default_auth(request):
    member_info = member_info_all(request)
    selected = {"selected": "true"}
    for item in member_info:
        group_data = item['groupData']
        for item in group_data:
            if item['value'] == request.session['id']:
                item.update(selected)
    return make_response(content=json.dumps({'success': True, 'member_info': member_info, 'permission': REPORT_PERMISSION_DEFAULT}))
Beispiel #9
0
def get_model_id(request, model):
    try:
        model = ProductModel.objects.get(name=model)
        model_id = model.id
        mnfacture_id = Product.objects.get(pk=model.product_id.id).mnfacture.id
        return make_response(status=200,
                             content=json.dumps({
                                 'success': True,
                                 'model_id': model_id,
                                 'mnfacture_id': mnfacture_id
                             }))
    except:
        return make_response(status=400,
                             content=json.dumps({
                                 'success':
                                 False,
                                 'msg':
                                 "모델명 상세페이지로 이동에 실패 하였습니다."
                             }))
Beispiel #10
0
def document_permission_check(request, document_id):
    attach_info = Document.objects.get(id=document_id)
    creator = attach_info.creator_id
    permissioners = attach_info.auth
    login_id = request.session['id']

    if request.method == "GET":
        if login_id == creator:
            return make_response(status=200, content=json.dumps({'success': True}))
    
        else:
            permissioners_array = []
            for permissioner in permissioners:
                permissioners_array.append(int(permissioner['value']))
            
            if login_id in permissioners_array:
                return make_response(status=200, content=json.dumps({'success': True}))
            else:
                return make_response(status=400, content=json.dumps({'success': False, 'msg': "해당 문서에 대한 다운로드 권한이 없습니다."}))
Beispiel #11
0
def client_add_apply(request):
    try:
        new_client_name = request.POST['clientName']
        new_client = Client(name=new_client_name,
                            similar_word=SIMILAR_WORD_DEFAULT)
        new_client.save()
        return make_response(status=200,
                             content=json.dumps({
                                 'success': True,
                                 'msg': "고객사 신규 등록에 성공하였습니다."
                             }))
    except:
        return make_response(status=400,
                             content=json.dumps({
                                 'success':
                                 False,
                                 'msg':
                                 "고객사 신규 등록에 실패하였습니다.\n다시 시도해주세요."
                             }))
Beispiel #12
0
def client_dup_check(request):
    try:
        clients = Client.objects.all()
        client_name = request.POST['clientName']
        client = clients.get(name=client_name)

        similar_client_list = []
        similar = clients.values('similar_word', 'name')
        for item in similar:
            if client_name in item['similar_word']['similar']:
                similar_client_list.append(item['name'])

            if client_name in item['name']:
                similar_client_list.append(item['name'])

        return make_response(status=400,
                             content=json.dumps({
                                 'success':
                                 False,
                                 'client_name':
                                 client.name,
                                 "similar_client_list":
                                 similar_client_list
                             }))

    except Client.DoesNotExist:
        similar_client_list = []
        similar = clients.values('similar_word', 'name')
        for item in similar:
            if client_name in item['similar_word']['similar']:
                similar_client_list.append(item['name'])

            if client_name in item['name']:
                similar_client_list.append(item['name'])

        return make_response(status=200,
                             content=json.dumps({
                                 'success':
                                 True,
                                 "similar_client_list":
                                 similar_client_list
                             }))
Beispiel #13
0
def document_upload_apply(request):
    attach=request.FILES['qqfile']
    attach_name = request.POST['qqfilename']
    category = request.POST['category']
    check_code = request.POST['checkCode']
    client = request.POST['client']
    content_size=request.FILES['qqfile'].size
    content_type=request.FILES['qqfile'].content_type
    mnfacture = request.POST['mnfacture']
    project = int(request.POST['project'])
    product = request.POST['product']
    permissions = json.loads(request.POST['permissions'])

    try:
        document = Document(client_id=client, project=project, category=category, auth=permissions, creator_id=request.session['id'], mnfacture_id=mnfacture, product_id=product,
                        attach_name=attach_name, content_size=content_size, content_type=content_type, attach=attach, check_code=check_code)
        document.save()
        return make_response(status=200, content=json.dumps({'success': True, 'msg': '파일 업로드에 성공하였습니다.'}))

    except:
        return make_response(status=400, content=json.dumps({'success': False, 'msg': "문서 등록에 실패하였습니다.\n다시 시도해주시기 바랍니다."}))
Beispiel #14
0
def document_attach_auth(request, document_id):
    document = Document.objects.get(id=document_id)
    selected = {"selected": "true"}
    document_auth = document.auth
    member_info = member_info_all(request)

    for item in document_auth:
        auth_name = item['name']
        for item in member_info:
            group_data = item['groupData']
            for item in group_data:
                if auth_name == item['name']:
                    item.update(selected)
    return make_response(content=json.dumps({'success': True, 'auth_info': member_info}))
Beispiel #15
0
def get_product_model_lists(request, mnfacture_id):
    products = Product.objects.filter(mnfacture_id=mnfacture_id).order_by('id')
    product_models = []

    for product in products:
        product_model_lists = ProductModel.objects.filter(
            product_id=product.id).values("id", "name")
        ordered_product_models = product_model_lists.order_by("name")

        for ordered_product_model in ordered_product_models:
            product_models.append(ordered_product_model)

    return make_response(status=200,
                         content=json.dumps({
                             'success': True,
                             'product_models': product_models
                         }))
Beispiel #16
0
def member_info(request):
    members = Member.objects.all()
    depts = members.values('dept').distinct().order_by('dept')

    members_data = []

    for dept in depts:
        classify_member = members.filter(dept=dept['dept'])
        data_format = {'groupName': dept['dept'], 'groupData': []}

        for member in classify_member:
            data_format['groupData'].append({
                'name':
                member.name + " " + member.rank,
                'value':
                member.id
            })
        members_data.append(data_format)
    return make_response(status=200,
                         content=json.dumps({'members_data': members_data}))
Beispiel #17
0
def document(request, document_id):
    if request.method == "DELETE":
        try:
            document = Document.objects.get(id=document_id)
            creator = document.creator_id
            login_id = request.session['id']

            if creator == login_id:
                document.delete()
                return make_response(status=200, content=json.dumps({'success': True, 'msg': '문서가 삭제 되었습니다.'}))
            
            else:
                return make_response(status=400, content=json.dumps({'success': False, 'msg': '해당 문서를 삭제할 수 있는 권한이 없습니다.'}))

        except Document.DoesNotExist:
            return make_response(status=400, content=json.dumps({'success': False, 'msg': '문서가 서버에 존재하지 않습니다.\n관리자에게 문의하세요.'}))

        except:
            return make_response(status=400, content=json.dumps({'success': False, 'msg': '문서를 삭제하는데 실패하였습니다.\n다시 시도해주세요.'}))
    
    if request.method == "PATCH":
        data = QueryDict(request.body)
        modify_object = data['modifyObject']
        try:
            document = Document.objects.get(id=document_id)
            
            if modify_object == "product":
                document.product_id = data['productId']
                document.save()
                msg = "제품명 수정이 완료 되었습니다."
            
            elif modify_object == "category":
                document.category = data['category']
                document.save()
                msg = "구분 수정이 완료 되었습니다."
            return make_response(status=200, content=json.dumps({'success': True, 'msg': msg, 'client_id': document.client_id, 'modify_object': modify_object}))

        except Document.DoesNotExist:
            return make_response(status=400, content=json.dumps({'success': False, 'msg': '문서가 존재하지 않습니다.\n관리자에게 문의하세요.', 'modify_object': modify_object}))

        except:
            return make_response(status=400, content=json.dumps({'success': False, 'msg': '정보를 수정하는데 실패하였습니다.\n다시 시도해 주세요', 'modify_object': modify_object}))
Beispiel #18
0
def login_process(request):
    if request.method == "POST":
        username = request.POST['memberId']
        password = request.POST['memberPw']
        password = parse.quote(password)
        url = settings.AUTH_URL
        cond = f"username={username}&password={password}"
        auth_url = f"{url}?{cond}"

        response = requests.get(auth_url)
        response_status_code = response.status_code

        if response_status_code != 200:
            return make_response(status=400,
                                 content=json.dumps({
                                     'success':
                                     False,
                                     'msg':
                                     "사용자 정보를 가지고 올 수 없습니다.\n관리자에게 문의하세요."
                                 }))

        else:
            response_objects = json.loads(response.content)['objects']

            if not response_objects:
                return make_response(status=400,
                                     content=json.dumps({
                                         'success':
                                         False,
                                         'msg':
                                         "존재하지 않는 ID입니다.\n확인 후 다시 시도해주세요."
                                     }))

            else:
                valid = response_objects[0]['valid']
                username = response_objects[0]['username']

                if valid == True:
                    member_info = Member.objects.get(member_id=username)
                    request.session['id'] = member_info.id
                    request.session['member_id'] = member_info.member_id
                    request.session['member_name'] = member_info.name
                    request.session['member_dept'] = member_info.dept
                    request.session['member_rank'] = member_info.rank

                    user = authenticate(request, username=username)
                    login(request, user)

                    if request.session[
                            'member_dept'] in REPORT_PERMISSION_DEFAULT:
                        redirect_url = "/weekly/"
                    else:
                        redirect_url = "/assets/"

                    return make_response(status=200,
                                         content=json.dumps({
                                             'success':
                                             True,
                                             'redirect_url':
                                             redirect_url
                                         }))
                else:
                    return make_response(
                        status=400,
                        content=json.dumps({
                            'success':
                            False,
                            'msg':
                            "패스워드가 정확하지 않습니다.\n확인 후 다시 시도하여주세요."
                        }))