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))
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
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
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)
def getnameresponse(obj): userType = UserType.GetUserType(obj) if userType == 2: return "Хотят у нас работать" else: return "Отклики"
def getname(obj): name = '' if obj.is_authenticated: userobject = UserType.GetElementByUser(obj) if userobject != None: name = userobject.name return name
def getresizelink(obj): fotourl = '' if obj.is_authenticated: userobject = UserType.GetElementByUser(obj) if userobject != None: fotourl = Attacment.getresizelink(userobject.image) return fotourl
def getnewresponse(obj): userType = UserType.GetUserType(obj) if userType == 2: count = JobResponse.getCount(obj) return count else: return ""
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) + " не найден")
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)
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)
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)
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)
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)
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('/')