Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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))
Пример #6
0
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))
Пример #7
0
 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
Пример #8
0
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
        })
Пример #9
0
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})
Пример #10
0
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
        })