def clean_email(self): email = self.cleaned_data["email"].lower() user = User.objects(email=email).only('is_active').first() if user: if user.is_active: raise forms.ValidationError(_("A user with that email already" " exists.")) else: raise forms.ValidationError("inactive") return email
def cam_form(request, user, cam): if cam: initial = cam._data initial['type'] = cam.type.get_option_value() initial['operator'] = initial['operator'] and initial['operator'].id initial['tags'] = initial['tags'] and [i.id for i in initial['tags']] for tariff_type in Camera.TARIFF_FIELDS: value = getattr(cam, tariff_type) if value: initial[tariff_type] = value.id else: initial = {} if request.POST and request.POST.get('form', None) == 'cam': form = CameraForm(user, request.POST, initial=initial) if form.is_valid(): if not cam: cam = Camera() cam.owner = user old_tag_ids = [] elif form.cleaned_data['tags']: old_tag_ids = map(str, cam.tags) for k, v in form.cleaned_data.items(): setattr(cam, k, v) cam.type = CameraType.objects.get( id=form.cleaned_data['type'][:-2]) cam.operator = form.cleaned_data['operator'] and User.objects( id=form.cleaned_data['operator']).first() or None if form.cleaned_data['tags']: new_tag_ids = map(str, form.cleaned_data['tags']) CameraTag.calc_count(new_tag_ids, old_tag_ids) cam.tags = CameraTag.objects(id__in=form.cleaned_data['tags']) for tariff_type in Camera.TARIFF_FIELDS: value = form.cleaned_data[tariff_type] if value: value = Tariff.objects.get(id=value) assert value in getattr(Tariff, 'get_%s_list' % tariff_type)() setattr(cam, tariff_type, value) else: setattr(cam, tariff_type, None) cam.save() messages.add_message(request, messages.SUCCESS, _('Camera successfully updated')) return else: form = CameraForm(user, None, initial=initial) return dict(cam_form=form, camera=cam)
def cam_form(request, user, cam): if cam: initial = cam._data initial["type"] = cam.type.get_option_value() initial["operator"] = initial["operator"] and initial["operator"].id initial["tags"] = initial["tags"] and [i.id for i in initial["tags"]] for tariff_type in Camera.TARIFF_FIELDS: value = getattr(cam, tariff_type) if value: initial[tariff_type] = value.id else: initial = {} if request.POST and request.POST.get("form", None) == "cam": form = CameraForm(user, request.POST, initial=initial) if form.is_valid(): if not cam: cam = Camera() cam.owner = user old_tag_ids = [] elif form.cleaned_data["tags"]: old_tag_ids = map(str, cam.tags) for k, v in form.cleaned_data.items(): setattr(cam, k, v) cam.type = CameraType.objects.get(id=form.cleaned_data["type"][:-2]) cam.operator = ( form.cleaned_data["operator"] and User.objects(id=form.cleaned_data["operator"]).first() or None ) if form.cleaned_data["tags"]: new_tag_ids = map(str, form.cleaned_data["tags"]) CameraTag.calc_count(new_tag_ids, old_tag_ids) cam.tags = CameraTag.objects(id__in=form.cleaned_data["tags"]) for tariff_type in Camera.TARIFF_FIELDS: value = form.cleaned_data[tariff_type] if value: value = Tariff.objects.get(id=value) assert value in getattr(Tariff, "get_%s_list" % tariff_type)() setattr(cam, tariff_type, value) else: setattr(cam, tariff_type, None) cam.save() messages.add_message(request, messages.SUCCESS, _("Camera successfully updated")) return else: form = CameraForm(user, None, initial=initial) return dict(cam_form=form, camera=cam)
def lost_password(request, template='social/lost_password.html'): if request.method == 'POST': form = LostPasswordForm(request.POST) if form.is_valid(): user = User.objects(email=form.cleaned_data['email']).first() if user: if user.is_active: user.gen_activation_code() user.save() user.send_restore_password_code() elif not user.is_banned: user.send_activation_code() messages.add_message(request, messages.SUCCESS, _('Email with a link sent to restore the address you specify.')) return redirect('social:index') else: form = LostPasswordForm() return direct_to_template(request, template , dict(form=form))
def lost_password(request, template='social/lost_password.html'): if request.method == 'POST': form = LostPasswordForm(request.POST) if form.is_valid(): user = User.objects(email=form.cleaned_data['email']).first() if user: if user.is_active: user.gen_activation_code() user.save() user.send_restore_password_code() elif not user.is_banned: user.send_activation_code() messages.add_message( request, messages.SUCCESS, _('Email with a link sent to restore the address you specify.') ) return redirect('social:index') else: form = LostPasswordForm() return direct_to_template(request, template, dict(form=form))
def authenticate(self, email=None, password=None): user = User.objects(email=email).first() if user: if password and user.check_password(password): return user return None
def index(request): if not request.user.is_authenticated(): return _index_unreg(request) params = dict(request.GET.items()) if 'page' in params: del params['page'] form = PeopleFilterForm(params or None) if params and form.is_valid(): filter_user_data = {} filter_profile_data = {} data = dict(form.cleaned_data) filter_user_data['is_active'] = True if data['first_name']: filter_user_data['first_name__icontains'] = data['first_name'] if data['last_name']: filter_user_data['last_name__icontains'] = data['last_name'] if data['gender']: filter_profile_data['sex'] = data['gender'] if data['has_photo']: filter_user_data['avatar__exists'] = True if data['is_online']: filter_user_data.update({'last_access__gt': User.get_delta_time()}) if filter_profile_data: profiles = Profile.objects.filter( **filter_profile_data).only('user') if filter_user_data: user_ids = [profile.user.id for profile in profiles] filter_user_data['id__in'] = user_ids users = User.objects.filter(**filter_user_data) else: users = [profile.user for profile in profiles] else: users = User.objects.filter(**filter_user_data) users_count = len(users) else: users = User.objects(last_access__gt=User.get_delta_time(), is_active=True) users_count = User.objects(last_access__gt=User.get_delta_time(), is_active=True).count() objects = paginate(request, users, users_count, 24) if request.is_ajax(): return direct_to_template(request, '_user_list.html', { 'objects': objects, }) else: return direct_to_template(request, 'index.html', { 'objects': objects, 'form': form })
def index(request): if not request.user.is_authenticated(): return _index_unreg(request) params = dict(request.GET.items()) if "kino" in params and params["kino"]: params["kino"] = request.GET.getlist("kino") if "page" in params: del params["page"] form = PeopleFilterForm(params or None) if params and form.is_valid(): filter_user_data = {} filter_profile_data = {} data = dict(form.cleaned_data) filter_user_data["is_active"] = True if data["first_name"]: filter_user_data["first_name__icontains"] = data["first_name"] if data["last_name"]: filter_user_data["last_name__icontains"] = data["last_name"] if data["gender"]: filter_profile_data["sex"] = data["gender"] if data["is_dating"]: filter_profile_data["is_dating"] = True if data["age_from"]: filter_profile_data["age__gte"] = data["age_from"] if data["age_to"]: filter_profile_data["age__lte"] = data["age_to"] if data["interests"]: filter_profile_data["interests__icontains"] = data["interests"] if data["kino"]: filter_profile_data["kino__in"] = data["kino"] if data["has_photo"]: filter_user_data["avatar__exists"] = True if data["is_online"]: filter_user_data.update({"last_access__gt": User.get_delta_time()}) if filter_profile_data: profiles = Profile.objects.filter(**filter_profile_data).only("user") if filter_user_data: user_ids = [profile.user.id for profile in profiles] filter_user_data["id__in"] = user_ids users = User.objects.filter(**filter_user_data) else: users = [profile.user for profile in profiles] else: users = User.objects.filter(**filter_user_data) users_count = len(users) else: users = User.objects(last_access__gt=User.get_delta_time(), is_active=True) users_count = User.objects(last_access__gt=User.get_delta_time(), is_active=True).count() objects = paginate(request, users, users_count, 24) if request.is_ajax(): return direct_to_template(request, "_user_list.html", {"objects": objects}) else: return direct_to_template(request, "index.html", {"objects": objects, "form": form})
def index(request): if not request.user.is_authenticated(): return _index_unreg(request) params = dict(request.GET.items()) if 'page' in params: del params['page'] form = PeopleFilterForm(params or None) if params and form.is_valid(): filter_user_data = {} filter_profile_data = {} data = dict(form.cleaned_data) filter_user_data['is_active'] = True if data['first_name']: filter_user_data['first_name__icontains'] = data['first_name'] if data['last_name']: filter_user_data['last_name__icontains'] = data['last_name'] if data['gender']: filter_profile_data['sex'] = data['gender'] if data['has_photo']: filter_user_data['avatar__exists'] = True if data['is_online']: filter_user_data.update( {'last_access__gt': User.get_delta_time() }) if filter_profile_data: profiles = Profile.objects.filter(**filter_profile_data).only('user') if filter_user_data: user_ids = [profile.user.id for profile in profiles] filter_user_data['id__in'] = user_ids users = User.objects.filter(**filter_user_data) else: users = [profile.user for profile in profiles] else: users = User.objects.filter(**filter_user_data) users_count = len(users) else: users = User.objects(last_access__gt=User.get_delta_time(), is_active=True) users_count = User.objects(last_access__gt=User.get_delta_time(), is_active=True).count() objects = paginate(request, users, users_count, 24) if request.is_ajax(): return direct_to_template(request, '_user_list.html', { 'objects': objects, }) else: return direct_to_template(request, 'index.html', { 'objects': objects, 'form': form })