mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-05-05 20:51:49 +02:00
Trim member usernames. Fixes #353
This commit is contained in:
parent
e89a758db5
commit
54803a9f1f
2 changed files with 16 additions and 2 deletions
|
@ -15,6 +15,10 @@ import email_validator
|
||||||
from ihatemoney.models import Project, Person
|
from ihatemoney.models import Project, Person
|
||||||
from ihatemoney.utils import slugify
|
from ihatemoney.utils import slugify
|
||||||
|
|
||||||
|
def strip_filter(string):
|
||||||
|
if hasattr(string, 'strip'):
|
||||||
|
return string.strip()
|
||||||
|
return string
|
||||||
|
|
||||||
def get_billform_for(project, set_default=True, **kwargs):
|
def get_billform_for(project, set_default=True, **kwargs):
|
||||||
"""Return an instance of BillForm configured for a particular project.
|
"""Return an instance of BillForm configured for a particular project.
|
||||||
|
@ -149,7 +153,7 @@ class BillForm(FlaskForm):
|
||||||
|
|
||||||
|
|
||||||
class MemberForm(FlaskForm):
|
class MemberForm(FlaskForm):
|
||||||
name = StringField(_("Name"), validators=[Required()])
|
name = StringField(_("Name"), validators=[Required()], filters=[strip_filter,])
|
||||||
|
|
||||||
weight_validators = [NumberRange(min=0.1, message=_("Weights should be positive"))]
|
weight_validators = [NumberRange(min=0.1, message=_("Weights should be positive"))]
|
||||||
weight = CommaDecimalField(_("Weight"), default=1,
|
weight = CommaDecimalField(_("Weight"), default=1,
|
||||||
|
|
|
@ -604,6 +604,17 @@ class BudgetTestCase(IhatemoneyTestCase):
|
||||||
balance = models.Project.query.get("raclette").balance
|
balance = models.Project.query.get("raclette").balance
|
||||||
self.assertEqual(set(balance.values()), set([6, -6]))
|
self.assertEqual(set(balance.values()), set([6, -6]))
|
||||||
|
|
||||||
|
|
||||||
|
def test_trimmed_members(self):
|
||||||
|
self.post_project("raclette")
|
||||||
|
|
||||||
|
# add two times the same person (with a space at the end)
|
||||||
|
self.client.post("/raclette/members/add", data={'name': 'alexis'})
|
||||||
|
self.client.post("/raclette/members/add", data={'name': 'alexis '})
|
||||||
|
members = models.Project.query.get("raclette").members
|
||||||
|
|
||||||
|
self.assertEqual(len(members), 1)
|
||||||
|
|
||||||
def test_weighted_members_list(self):
|
def test_weighted_members_list(self):
|
||||||
self.post_project("raclette")
|
self.post_project("raclette")
|
||||||
|
|
||||||
|
@ -1212,7 +1223,6 @@ class APITestCase(IhatemoneyTestCase):
|
||||||
self.assertEqual(False, json.loads(req.data.decode('utf-8'))["activated"])
|
self.assertEqual(False, json.loads(req.data.decode('utf-8'))["activated"])
|
||||||
|
|
||||||
# re-activate the user
|
# re-activate the user
|
||||||
|
|
||||||
req = self.client.put("/api/projects/raclette/members/1", data={
|
req = self.client.put("/api/projects/raclette/members/1", data={
|
||||||
"name": "Fred",
|
"name": "Fred",
|
||||||
"activated": True,
|
"activated": True,
|
||||||
|
|
Loading…
Reference in a new issue