Improve assigned users filter to have old US's
parent
4001c57359
commit
1dc19695b5
|
@ -423,6 +423,29 @@ class AssignedToFilter(BaseRelatedFieldsFilter):
|
||||||
class AssignedUsersFilter(BaseRelatedFieldsFilter):
|
class AssignedUsersFilter(BaseRelatedFieldsFilter):
|
||||||
filter_name = 'assigned_users'
|
filter_name = 'assigned_users'
|
||||||
|
|
||||||
|
def get_lookup_expression(self, field_name, value):
|
||||||
|
if None in value:
|
||||||
|
qs_in_kwargs = {
|
||||||
|
"{}__in".format(field_name): [v for v in value if
|
||||||
|
v is not None]}
|
||||||
|
qs_isnull_kwargs = {"{}__isnull".format(field_name): True}
|
||||||
|
return Q(**qs_in_kwargs) | Q(**qs_isnull_kwargs)
|
||||||
|
else:
|
||||||
|
return Q(**{"{}__in".format(field_name): value})
|
||||||
|
|
||||||
|
def _get_queryparams(self, params):
|
||||||
|
param_name = self.param_name or self.filter_name
|
||||||
|
raw_value = params.get(param_name, None)
|
||||||
|
|
||||||
|
if raw_value:
|
||||||
|
value = self._prepare_filter_data(raw_value)
|
||||||
|
assigned_user_filter = self.get_lookup_expression(param_name, value)
|
||||||
|
assigned_to_filter = self.get_lookup_expression('assigned_to', value)
|
||||||
|
|
||||||
|
return Q(assigned_user_filter | assigned_to_filter)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
class StatusesFilter(BaseRelatedFieldsFilter):
|
class StatusesFilter(BaseRelatedFieldsFilter):
|
||||||
filter_name = 'status'
|
filter_name = 'status'
|
||||||
|
|
|
@ -74,6 +74,7 @@ class UserAdminValidator(UserValidator):
|
||||||
|
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
class RecoveryValidator(validators.Validator):
|
class RecoveryValidator(validators.Validator):
|
||||||
token = serializers.CharField(max_length=200)
|
token = serializers.CharField(max_length=200)
|
||||||
password = serializers.CharField(min_length=6)
|
password = serializers.CharField(min_length=6)
|
||||||
|
|
|
@ -188,6 +188,8 @@ class UserFactory(Factory):
|
||||||
username = factory.Sequence(lambda n: "user{}".format(n))
|
username = factory.Sequence(lambda n: "user{}".format(n))
|
||||||
email = factory.LazyAttribute(lambda obj: '%s@email.com' % obj.username)
|
email = factory.LazyAttribute(lambda obj: '%s@email.com' % obj.username)
|
||||||
password = factory.PostGeneration(lambda obj, *args, **kwargs: obj.set_password(obj.username))
|
password = factory.PostGeneration(lambda obj, *args, **kwargs: obj.set_password(obj.username))
|
||||||
|
accepted_terms = True
|
||||||
|
read_new_terms = True
|
||||||
|
|
||||||
|
|
||||||
class MembershipFactory(Factory):
|
class MembershipFactory(Factory):
|
||||||
|
|
|
@ -61,6 +61,7 @@ def test_auth_action_register(client, settings):
|
||||||
"password": "test",
|
"password": "test",
|
||||||
"full_name": "test",
|
"full_name": "test",
|
||||||
"email": "test@test.com",
|
"email": "test@test.com",
|
||||||
|
"accepted_terms": True,
|
||||||
})
|
})
|
||||||
|
|
||||||
result = client.post(url, register_data, content_type="application/json")
|
result = client.post(url, register_data, content_type="application/json")
|
||||||
|
|
|
@ -22,7 +22,7 @@ from tempfile import NamedTemporaryFile
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
from taiga.base.utils import json
|
from taiga.base.utils import json
|
||||||
from taiga.users.serializers import UserSerializer
|
from taiga.users.serializers import UserAdminSerializer
|
||||||
|
|
||||||
from tests import factories as f
|
from tests import factories as f
|
||||||
from tests.utils import helper_test_http_method, disconnect_signals, reconnect_signals
|
from tests.utils import helper_test_http_method, disconnect_signals, reconnect_signals
|
||||||
|
@ -102,7 +102,7 @@ def test_user_update(client, data):
|
||||||
data.superuser,
|
data.superuser,
|
||||||
]
|
]
|
||||||
|
|
||||||
user_data = UserSerializer(data.registered_user).data
|
user_data = UserAdminSerializer(data.registered_user).data
|
||||||
user_data["full_name"] = "test"
|
user_data["full_name"] = "test"
|
||||||
user_data = json.dumps(user_data)
|
user_data = json.dumps(user_data)
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ def register_form():
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"full_name": "fname",
|
"full_name": "fname",
|
||||||
"email": "user@email.com",
|
"email": "user@email.com",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
|
|
||||||
|
|
||||||
|
@ -87,6 +88,7 @@ def test_response_200_in_public_registration(client, settings):
|
||||||
"full_name": "martin seamus mcfly",
|
"full_name": "martin seamus mcfly",
|
||||||
"email": "mmcfly@bttf.com",
|
"email": "mmcfly@bttf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
|
"accepted_terms": True,
|
||||||
}
|
}
|
||||||
|
|
||||||
response = client.post(reverse("auth-register"), form)
|
response = client.post(reverse("auth-register"), form)
|
||||||
|
@ -129,6 +131,7 @@ def test_auth_uppercase_ignore(client, settings):
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"full_name": "fname",
|
"full_name": "fname",
|
||||||
"email": "User@email.com",
|
"email": "User@email.com",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
response = client.post(reverse("auth-register"), register_form)
|
response = client.post(reverse("auth-register"), register_form)
|
||||||
|
|
||||||
|
@ -153,6 +156,7 @@ def test_auth_uppercase_ignore(client, settings):
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"full_name": "fname",
|
"full_name": "fname",
|
||||||
"email": "user@email.com",
|
"email": "user@email.com",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
response = client.post(reverse("auth-register"), register_form)
|
response = client.post(reverse("auth-register"), register_form)
|
||||||
|
|
||||||
|
@ -194,6 +198,7 @@ def test_login_fail_throttling(client, settings):
|
||||||
"password": "valid_password",
|
"password": "valid_password",
|
||||||
"full_name": "fullname",
|
"full_name": "fullname",
|
||||||
"email": "valid_username_login_fail@email.com",
|
"email": "valid_username_login_fail@email.com",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
response = client.post(reverse("auth-register"), register_form)
|
response = client.post(reverse("auth-register"), register_form)
|
||||||
|
|
||||||
|
@ -235,6 +240,7 @@ def test_register_success_throttling(client, settings):
|
||||||
"password": "valid_password",
|
"password": "valid_password",
|
||||||
"full_name": "fullname",
|
"full_name": "fullname",
|
||||||
"email": "",
|
"email": "",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
response = client.post(reverse("auth-register"), register_form)
|
response = client.post(reverse("auth-register"), register_form)
|
||||||
assert response.status_code == 400
|
assert response.status_code == 400
|
||||||
|
@ -243,6 +249,7 @@ def test_register_success_throttling(client, settings):
|
||||||
"password": "valid_password",
|
"password": "valid_password",
|
||||||
"full_name": "fullname",
|
"full_name": "fullname",
|
||||||
"email": "valid_username_register_success@email.com",
|
"email": "valid_username_register_success@email.com",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
response = client.post(reverse("auth-register"), register_form)
|
response = client.post(reverse("auth-register"), register_form)
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
|
@ -251,6 +258,7 @@ def test_register_success_throttling(client, settings):
|
||||||
"password": "valid_password2",
|
"password": "valid_password2",
|
||||||
"full_name": "fullname",
|
"full_name": "fullname",
|
||||||
"email": "valid_username_register_success2@email.com",
|
"email": "valid_username_register_success2@email.com",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
response = client.post(reverse("auth-register"), register_form)
|
response = client.post(reverse("auth-register"), register_form)
|
||||||
assert response.status_code == 429
|
assert response.status_code == 429
|
||||||
|
@ -259,6 +267,7 @@ def test_register_success_throttling(client, settings):
|
||||||
"password": "valid_password2",
|
"password": "valid_password2",
|
||||||
"full_name": "fullname",
|
"full_name": "fullname",
|
||||||
"email": "",
|
"email": "",
|
||||||
|
"accepted_terms": True,
|
||||||
"type": "public"}
|
"type": "public"}
|
||||||
response = client.post(reverse("auth-register"), register_form)
|
response = client.post(reverse("auth-register"), register_form)
|
||||||
assert response.status_code == 429
|
assert response.status_code == 429
|
||||||
|
|
Loading…
Reference in New Issue