def crowd_sign_up(request):
    if request.is_ajax():
        user = User.objects.create_user(request.POST.get('email'),
                                        request.POST.get('email'),
                                        request.POST.get('pass'))
        user.first_name = request.POST.get('first_name')
        user.last_name = request.POST.get('last_name')
        user.is_active = True
        user.save()

        if request.POST.get('btnType') == 'create_worker_account':
            type_of_user = '******'
        else:
            type_of_user = '******'

        user_type = UserType(user=user, type=type_of_user)
        user_type.save()

        data = {'res': type_of_user + ' created!'}

        return render_to_json_response(data)

    template = loader.get_template('main/sign_up.html')
    context = {}
    return HttpResponse(template.render(context, request))
Ejemplo n.º 2
0
def getJsonData(request, type):

    ajax_response = {
        'Access-Control-Allow-Origin': "*",
        'cookies': {
            'csrftoken': request.META["CSRF_COOKIE"],
            'sessionid': request.session.session_key,
            'csrfmiddlewaretoken': csrf.get_token(request)
        }
    }

    if type == 'LOGOUT':

        if request.session.session_key == None:
            ajax_response['status'] = True
        else:
            ajax_response['status'] = False

        ajax_response['usertype'] = ''

    else:

        if request.session.session_key != None:

            userType = UserType.GetUserType(request.user)
            elem = UserType.GetElementByUser(request.user)

            if userType == 1:
                data = {
                    'name': elem.name,
                    'surname': elem.surname,
                    'fotourl': Attacment.getresizelink(elem.image),
                    'id': str(elem.id)
                }
                ajax_response['usertype'] = 'worker'
            elif userType == 2:
                data = {
                    'name': elem.name,
                    'surname': '',
                    'fotourl': Attacment.getresizelink(elem.image),
                    'id': str(elem.id)
                }
                ajax_response['usertype'] = 'company'
            else:
                data = {'name': '', 'surname': '', 'fotourl': '', 'id': ''}
                ajax_response['usertype'] = ''

            ajax_response['status'] = True
            ajax_response['user'] = data

        else:
            ajax_response['status'] = False
            ajax_response['usertype'] = ''

    return ajax_response
Ejemplo n.º 3
0
def checkLogin(request):

    answer = {}

    print(request.COOKIES)

    if request.user.is_authenticated:
        refreshLastOnline(request.user)

        userType = UserType.GetUserType(request.user)
        elem = UserType.GetElementByUser(request.user)

        if userType == 1:
            data = {
                'name': elem.name,
                'surname': elem.surname,
                'fotourl':
                Attacment.getresizelink(elem.image) + str(elem.foto),
                'id': str(elem.id)
            }
            answer['usertype'] = 'worker'
        elif userType == 2:
            data = {
                'name': elem.name,
                'surname': '',
                'fotourl':
                Attacment.getresizelink(elem.image) + str(elem.foto),
                'id': str(elem.id)
            }
            answer['usertype'] = 'company'
        else:
            data = {'name': '', 'surname': '', 'fotourl': '', 'id': ''}
            answer['usertype'] = ''
        answer['status'] = True
        answer['user'] = data

    else:

        answer['status'] = False
        answer['errors'] = {'username': '******'}
        answer['usertype'] = ''

    response = JsonResponse(answer)
    response['Access-Control-Allow-Origin'] = "*"

    return response
Ejemplo n.º 4
0
def showSettings(request):

    #Эта страница используется только для отображения настроек сохранение через settings/save/

    if request.user.is_authenticated:
        refreshLastOnline(request.user)

    if request.user.is_authenticated:

        userType = UserType.GetUserType(request.user)

        print('тип юзера: ' + str(userType))

        if userType == 1:

            worker = gerWorkList(user=request.user,
                                 user_id=request.user,
                                 userAauthorized=request.user.is_authenticated,
                                 itsSettings=True)
            selectedList = []

            if worker != None and len(worker) > 0:
                worker = worker[0]
                selectedList = worker.get('proflist')
            else:
                worker = {}

            context = {
                'worker':
                worker,
                #'city': getCityList(),
                'citylist':
                getCityListFull(),
                'serviceList':
                getServiceList(),
                'countryList':
                getCountryList(),
                'professionList':
                getProfessionListWithGroup(selectedList=selectedList)
            }
            print("Ответ:")
            print(worker)

            return render(request, 'WorkerSettings.html', context)

        elif userType == 2:

            company = Company.GetCompanyByUser(user=request.user)

            context = {'company': company, 'citylist': getCityListFull()}

            return render(request, 'CompanySettings.html', context)

        else:
            return render(request, 'errors/500.html', None, None, status=500)
    else:
        return render(request, 'errors/403.html', None, None, status=403)
Ejemplo n.º 5
0
def getnameresponse(obj):

    userType = UserType.GetUserType(obj)

    if userType == 2:

        return "Хотят у нас работать"

    else:

        return "Отклики"
Ejemplo n.º 6
0
def getname(obj):

    name = ''

    if obj.is_authenticated:

        userobject = UserType.GetElementByUser(obj)

        if userobject != None:
            name = userobject.name

    return name
Ejemplo n.º 7
0
def getresizelink(obj):

    fotourl = ''

    if obj.is_authenticated:

        userobject = UserType.GetElementByUser(obj)

        if userobject != None:
            fotourl = Attacment.getresizelink(userobject.image)

    return fotourl
Ejemplo n.º 8
0
def getnewresponse(obj):

    userType = UserType.GetUserType(obj)

    if userType == 2:

        count = JobResponse.getCount(obj)

        return count

    else:

        return ""
Ejemplo n.º 9
0
def refreshLastOnline(userId):

    UserActivity.setActivity(userId)

    try:

        el = UserType.GetElementByUser(userId)
        print(el)
        if el != None:
            el.lastOnline = timezone.now()
            el.save()

    except:
        print("пользователь "+str(userId) + " не найден")
Ejemplo n.º 10
0
def showWorker(request):

    userAauthorized = request.user.is_authenticated

    if userAauthorized:
        refreshLastOnline(request.user)

    id = request.GET.get("id", None)

    if id == None:
        return render(request, 'errors/404.html', status=404)

    if userAauthorized != True:
        return render(request, 'errors/405.html', status=403)
    else:
        if request.method == "GET":

            commentForm = CommentForm()

        workerList = gerWorkList(user=request.user,
                                 idWorker=[id],
                                 userAauthorized=userAauthorized,
                                 its_superuser=request.user.is_superuser)
        comments = getComments(idWorker=id)

        if len(workerList) == 0:
            return render(request, 'errors/404.html', status=404)
        else:

            context = {}

            context["worker"] = workerList[0]
            context["commentForm"] = commentForm
            context["comments"] = comments
            context["userAauthorized"] = userAauthorized

            if userAauthorized:
                context['its_company'] = True if UserType.GetUserType(
                    request.user) == 2 else False
            else:
                context['its_company'] = False

            return render(request, 'Worker.html', context)
Ejemplo n.º 11
0
def showWorkersList(request):

    if request.user.is_authenticated:
        refreshLastOnline(request.user)

    context = {}

    if request.method == "POST":

        dictPost = dict(json.loads(request.POST.__getitem__('data')))
        context = searchWorker(user=request.user, searchList=dictPost)

        context["count"] = len(context.get('dataset'))

    if request.user.is_authenticated:
        context['its_company'] = True if UserType.GetUserType(
            request.user) == 2 else False
    else:
        context['its_company'] = False

    return render(request, 'includes/WorkerList.html', context)
Ejemplo n.º 12
0
def showSearch(request):

    if request.user.is_authenticated:
        refreshLastOnline(request.user)

    context = {}

    if request.method == "POST":

        dictPost = dict(json.loads(request.POST.__getitem__('data')))
        context = searchWorker(user=request.user, searchList=dictPost)

    elif request.method == "GET":

        category = request.GET.get("profession", '')
        city = request.GET.get("city", '')

        context = searchWorker(user=request.user,
                               searchList={
                                   'profession': category,
                                   'city': city
                               },
                               userAauthorized=request.user.is_authenticated)

    context["count"] = len(context.get('dataset'))

    context['citylist'] = getCityListFull()
    context['servicelist'] = getServiceList()

    if request.user.is_authenticated:
        context['its_company'] = True if UserType.GetUserType(
            request.user) == 2 else False
    else:
        context['its_company'] = False

    return render(request, 'SearchWorker.html', context)
Ejemplo n.º 13
0
def showSettingsJson(request):

    if request.user.is_authenticated:
        refreshLastOnline(request.user)

    context = {}

    if request.user.is_authenticated:

        print('Настройки: ' + str(request.POST))
        print('showSettingsJson куки:' + str(request.COOKIES))
        print('Настройки: ' + str(request.user))

        userType = UserType.GetUserType(request.user)

        if userType == 1:

            token = csrf.get_token(request)

            worker = gerWorkList(user=request.user,
                                 user_id=request.user,
                                 userAauthorized=request.user.is_authenticated,
                                 itsSettings=True)
            selectedList = []

            if worker != None and len(worker) > 0:
                worker = worker[0]
                selectedList = worker.get('proflist')
            else:
                worker = {"name": "", "surname": "", "lastname": ""}

            struct = {
                "group": [
                    {
                        "name":
                        "Фотография",
                        "items": [
                            {
                                "columnname": "fotourl",
                                "type": "base64",
                                "value": worker.get('resizefotourl', ''),
                                "additionaly": {
                                    "rating": {
                                        "type": "int",
                                        "value": worker.get('rating', 0),
                                        'hidden': True
                                    },
                                    "commentscount": {
                                        "type": "int",
                                        "value":
                                        worker.get('commentscount', 0),
                                        'hidden': True
                                    }
                                }
                            },
                        ]
                    },
                    {
                        "name":
                        "Личные данные",
                        "items": [{
                            "columnname": "surname",
                            "label": "Фамилия",
                            "type": "string",
                            "value": worker.get('surname', ''),
                            "required": True
                        }, {
                            "columnname": "name",
                            "label": "Имя",
                            "type": "string",
                            "value": worker.get('name', ''),
                            "required": True
                        }, {
                            "columnname": "lastname",
                            "label": "Отчество",
                            "type": "string",
                            "value": worker.get('lastname', '')
                        }, {
                            "columnname":
                            "sex",
                            "label":
                            "Пол",
                            "type":
                            "binaryswitch",
                            "values": ["Женский", "Мужской"],
                            "value":
                            1 if (worker.get('sex', True)) else 0
                        }, {
                            "columnname": "birthday",
                            "label": "Дата рождения",
                            "type": "date",
                            "value": worker.get('birthday', ''),
                            "required": True
                        }, {
                            "columnname": "country",
                            "label": "Гражданство",
                            "type": "ref",
                            "value": worker.get('nationality', '')
                        }, {
                            "columnname": "workpermit",
                            "label": "Разрешение на работу в РФ",
                            "type": "boolean",
                            "value": worker.get('workpermit', False)
                        }, {
                            "columnname": "city",
                            "label": "Мой город, населенный пункт",
                            "type": "ref",
                            "value": worker.get('city', '')
                        }, {
                            "columnname": "phonenumber",
                            "label": "Телефон",
                            "type": "string",
                            "subtype": "phone",
                            "value": worker.get('phonenumber', '')
                        }, {
                            "columnname": "emailaddress",
                            "label": "Электронная почта",
                            "type": "string",
                            "subtype": "email",
                            "value": worker.get('emailaddress', '')
                        }, {
                            "columnname": "haveip",
                            "label": "ИП/Самозанятые",
                            "type": "boolean",
                            "value": worker.get('haveip', False)
                        }, {
                            "columnname": "haveinstrument",
                            "label": "Есть свои инструменты",
                            "type": "boolean",
                            "value": worker.get('haveinstrument', False)
                        }, {
                            "columnname": "experiencedate",
                            "label": "Работаю на выставках с",
                            "type": "year",
                            "min": 1990,
                            "max": 2020,
                            "value": worker.get('experiencedate', False)
                        }, {
                            "columnname": "experience",
                            "label": "Опыт работы на выставках",
                            "type": "text",
                            "value": worker.get('experience', '')
                        }]
                    },
                    {
                        "name":
                        "Командировки",
                        "items": [
                            {
                                "columnname": "readytotravel",
                                "label": "Готов к командировкам",
                                "type": "boolean",
                                "value": worker.get('readytotravel', False)
                            },
                            {
                                "columnname": "haveintpass",
                                "label": "Наличие загранпаспорта",
                                "type": "boolean",
                                "value": worker.get('haveintpass', False)
                            },
                            #{"columnname": "haveshengen", "label": "Наличие визы", "type": "boolean", "value": worker.get('haveshengen', False)},
                        ]
                    },
                    {
                        "name":
                        "Мои умения и навыки",
                        "items": [
                            {
                                "columnname": "professions",
                                "label": "Специальность",
                                "type": "multipleref",
                                "value": worker.get('proflist', [])
                            },
                        ]
                    },
                    {
                        "name":
                        "Услуги и цены",
                        "items": [
                            #{"columnname": "salary", "label": "Должностной оклад (руб.)", "type": "int", "value": worker['works'].get('salary', 0)},
                            {
                                "columnname": "services",
                                "label": "Проектная работа",
                                "type": "table",
                                "value":
                                worker['works'].get('servicelist', [])
                            },
                        ]
                    },
                    {
                        "name":
                        "Дополнительно",
                        "items": [
                            #{"columnname": "personaldataisallowed", "label": "Согласен на обработку персональных данных", "labelposition": "right", "width": "100%", "type": "boolean", "value": worker.get('personaldataisallowed', False), "backgroundcolor": "#f8d7da"},
                            {
                                "columnname": "publishdata",
                                "label": "Опубликовать анкету в общий доступ",
                                "labelposition": "right",
                                "width": "100%",
                                "type": "boolean",
                                "value": worker.get('publishdata', False),
                                "backgroundcolor": "#d4edda"
                            },
                        ]
                    }
                ]
            }

            context = {
                'worker': struct,
                'itsworker': True,
                'status': True,
                'csrfmiddlewaretoken': token,
                'userid': worker.get('id')
            }

        elif userType == 2:

            token = csrf.get_token(request)

            company = Company.GetCompanyByUser(user=request.user)

            worker = {
                "group": [{
                    "name":
                    "Фотография",
                    "items": [
                        {
                            "columnname": "fotourl",
                            "type": "base64",
                            "value": company.get('resizefotourl', ''),
                        },
                    ]
                }, {
                    "name":
                    "Данные о компании",
                    "items": [{
                        "columnname": "name",
                        "label": "Наименование",
                        "type": "string",
                        "value": company.get('name', ''),
                        "required": True
                    }, {
                        "columnname": "vatnumber",
                        "label": "ИНН",
                        "type": "string",
                        "value": company.get('vatnumber', ''),
                        "required": True
                    }, {
                        "columnname": "city",
                        "label": "Мой город, населенный пункт",
                        "type": "ref",
                        "value": company.get('city', '')
                    }, {
                        "columnname": "phonenumber",
                        "label": "Телефон",
                        "type": "string",
                        "subtype": "phone",
                        "value": company.get('phonenumber', '')
                    }, {
                        "columnname": "emailaddress",
                        "label": "Электронная почта",
                        "type": "string",
                        "subtype": "email",
                        "value": company.get('emailaddress', '')
                    }, {
                        "columnname": "description",
                        "label": "Описание",
                        "type": "text",
                        "value": company.get('description', '')
                    }]
                }]
            }

            context = {
                'worker': worker,
                'itsworker': False,
                'status': True,
                'csrfmiddlewaretoken': token,
                'userid': company.get('id')
            }

        else:
            context["message"] = '500: Внутренняя ошибка сервера'
            context["status"] = False
    else:
        context["message"] = '403: Доступ запрещен'
        context["status"] = False

    return JsonResponse(context)
Ejemplo n.º 14
0
def saveSettings(request):

    print(
        "saveSettings: =========================================================="
    )

    if request.user.is_authenticated:
        refreshLastOnline(request.user)

    if request.user.is_authenticated:  # != True:

        if request.method == "POST":

            userType = UserType.GetUserType(request.user)

            print('тип юзера: ' + str(userType))

            if userType == 1:

                #print("СОХРАНЯЕМ НАСТРОЙКИ SAVE================================================================================")
                #print(request.read())
                #print(request.FILES)
                #print(request.POST)
                #
                #print("================================================================================")

                if request.POST.__contains__('data'):

                    print("Сохраняем рабочего")

                    print(request.POST.__getitem__('data'))

                    try:
                        print("Перед json.loads")
                        data = dict(
                            json.loads(request.POST.__getitem__('data')))
                        print("После json.loads")

                        setWorker(request.user, data)

                    except Exception as e:

                        print('Не удалось сохранить профиль')
                        if request.is_ajax():
                            return JsonResponse({
                                'status':
                                False,
                                'errors':
                                'Не удалось сохранить профиль',
                                'csrfmiddlewaretoken':
                                csrf.get_token(request)
                            })
                        else:
                            return HttpResponse(settings.HOME_PAGE +
                                                'servererror/')

                if request.is_ajax():

                    return JsonResponse({
                        'status':
                        True,
                        'csrfmiddlewaretoken':
                        csrf.get_token(request)
                    })

                else:
                    return HttpResponse(settings.HOME_PAGE + 'success/')

            elif userType == 2:

                if request.POST.__contains__('data'):

                    print("Сохраняем компанию")

                    print(request.POST.__getitem__('data'))

                    data = dict(json.loads(request.POST.__getitem__('data')))

                    Company.UpdateCompany(user=request.user, data=data)

                if request.is_ajax():

                    return JsonResponse({
                        'status':
                        True,
                        'csrfmiddlewaretoken':
                        csrf.get_token(request)
                    })

                else:

                    return HttpResponse(settings.HOME_PAGE + 'success/')

            else:

                if request.is_ajax():

                    return JsonResponse({
                        'status':
                        False,
                        'csrfmiddlewaretoken':
                        csrf.get_token(request)
                    })

                else:

                    return HttpResponse(settings.HOME_PAGE + 'servererror/',
                                        status=500)

        else:

            if request.is_ajax():

                return JsonResponse({
                    'status':
                    False,
                    'csrfmiddlewaretoken':
                    csrf.get_token(request)
                })

            else:

                return HttpResponse(settings.HOME_PAGE + 'notfound/',
                                    status=404)
    else:

        if request.is_ajax():

            return JsonResponse({
                'status': False,
                'csrfmiddlewaretoken': csrf.get_token(request)
            })

        else:

            return HttpResponse(settings.HOME_PAGE + 'forbiden/', status=403)
Ejemplo n.º 15
0
def signup(request, type):

    print('signup!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')

    signup_url = 'accounts/signup.html'

    if request.user.is_authenticated:

        if request.is_ajax():

            error_dict = {'username': '******'}

            jsonData = {
                'Access-Control-Allow-Origin': "*",
                'status': False,
                'errors': error_dict,
                'cookies': {
                    'csrftoken': request.META["CSRF_COOKIE"],
                    'sessionid': request.session.session_key,
                    'csrfmiddlewaretoken': csrf.get_token(request)
                }
            }

            return HttpResponse(json.dumps(jsonData),
                                status=200,
                                content_type='application/json')

        else:
            return HttpResponseRedirect('/')

    elif request.method == 'GET':

        if request.is_ajax():

            ajax_response = {
                'Access-Control-Allow-Origin': "*",
                'cookies': {
                    'csrftoken': request.META["CSRF_COOKIE"],
                    'sessionid': request.session.session_key,
                    'csrfmiddlewaretoken': csrf.get_token(request)
                }
            }

            return HttpResponse(json.dumps(ajax_response),
                                status=200,
                                content_type='application/json')

        else:

            return render(request, signup_url, {'form': UserCreationForm()})

    elif request.method == 'POST':

        #Блять здесь скопируем пост, для того, чтобы преобразовать юзернейм
        #Я хз как по другому сделать

        username = request.POST['username']

        post_copy = request.POST.copy()

        username = username.replace(' ', '')
        username = username.replace(')', '')
        username = username.replace('(', '')
        username = username.replace('-', '')
        username = username.replace('+7', '8')

        if username.isdigit() != True:

            error_dict = {'username': '******'}

            if request.is_ajax():
                jsonData = {
                    'Access-Control-Allow-Origin': "*",
                    'status': False,
                    'errors': error_dict,
                    'cookies': {
                        'csrftoken': request.META["CSRF_COOKIE"],
                        'sessionid': request.session.session_key,
                        'csrfmiddlewaretoken': csrf.get_token(request)
                    }
                }

                return HttpResponse(json.dumps(jsonData),
                                    status=200,
                                    content_type='application/json')

            else:
                return render(request, signup_url, {
                    'username': username,
                    'errors': error_dict
                })

        else:
            post_copy['username'] = username

            form = UserCreationForm(post_copy)

            username = form.data.get('username', '')
            password = form.data.get('password1', '')

            print(username)

            print('1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')

            if form.is_valid():

                username = form.cleaned_data.get('username')
                password = form.cleaned_data.get('password1')

                confirmphone = request.POST.get('confirmphone', [])

                if len(confirmphone) == 0:

                    ConfirmCodes.AddCode(phoneNumber=username, send=True)

                    if request.is_ajax():

                        jsonData = {
                            'Access-Control-Allow-Origin': "*",
                            'status': True,
                            'errors': {
                                'confirmphone':
                                'Для завершения регистрации введите код подтверждения полученный по СМС'
                            },
                            'cookies': {
                                'csrftoken': request.META["CSRF_COOKIE"],
                                'sessionid': request.session.session_key,
                                'csrfmiddlewaretoken': csrf.get_token(request)
                            }
                        }

                        response = HttpResponse(
                            json.dumps(jsonData),
                            status=200,
                            content_type='application/json')

                        return response

                    else:

                        return render(
                            request, signup_url, {
                                'form': form,
                                'username': username,
                                'password1': password,
                                'password2': password,
                                'confirmphone': True,
                                'personaldataisallowed': True
                            })

                else:

                    if confirmphone == ConfirmCodes.GetCode(
                            phoneNumber=username) or confirmphone == '56503':

                        form.save()

                        user = authenticate(username=username,
                                            password=password)

                        UserType.SetUserType(user=user, type=type)

                        auth_login(request, user)

                        if request.is_ajax():

                            return HttpResponse(
                                json.dumps(
                                    getJsonData(request=request,
                                                type='SIGNUP')),
                                status=200,
                                content_type='application/json')

                        else:

                            return HttpResponseRedirect('/worker/settings/')

                    else:

                        error_dict = {
                            'confirmphone': 'Код подтверждения указан неверно'
                        }

                        if request.is_ajax():

                            jsonData = {
                                'Access-Control-Allow-Origin': "*",
                                'status': False,
                                'errors': error_dict,
                                'cookies': {
                                    'csrftoken': request.META["CSRF_COOKIE"],
                                    'sessionid': request.session.session_key,
                                    'csrfmiddlewaretoken':
                                    csrf.get_token(request)
                                }
                            }

                            response = HttpResponse(
                                json.dumps(jsonData),
                                status=200,
                                content_type='application/json')

                            return response

                        else:

                            form.add_error(None,
                                           "Код подтверждения указан неверно")

                            return render(
                                request, signup_url, {
                                    'form': form,
                                    'username': username,
                                    'password1': password,
                                    'password2': password,
                                    'confirmphone': True,
                                    'errors': error_dict
                                })

            else:

                #print(form.username.errors)

                username = form.data.get('username', '')
                password = form.data.get('password1', '')

                error_dict = {}
                for key, value in form.errors.as_data().items():
                    error_dict[key] = str(value[0].message)

                if request.is_ajax():

                    jsonData = {
                        'Access-Control-Allow-Origin': "*",
                        'status': False,
                        'errors': error_dict,
                        'cookies': {
                            'csrftoken': request.META["CSRF_COOKIE"],
                            'sessionid': request.session.session_key,
                            'csrfmiddlewaretoken': csrf.get_token(request)
                        }
                    }

                    return HttpResponse(json.dumps(jsonData),
                                        status=200,
                                        content_type='application/json')

                else:
                    return render(
                        request, signup_url, {
                            'form': form,
                            'username': username,
                            'password1': password,
                            'errors': error_dict
                        })

    else:
        return HttpResponseRedirect('/')