mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-05-01 18:52:23 +02:00
Trim member usernames. Fixes #353
(cherry picked from commit 82d94a7490
)
This commit is contained in:
parent
fe08133064
commit
be8b01a493
2 changed files with 18 additions and 2 deletions
|
@ -17,6 +17,13 @@ from ihatemoney.models import Project, Person
|
||||||
from ihatemoney.utils import slugify, eval_arithmetic_expression
|
from ihatemoney.utils import slugify, eval_arithmetic_expression
|
||||||
|
|
||||||
|
|
||||||
|
def strip_filter(string):
|
||||||
|
try:
|
||||||
|
return string.strip()
|
||||||
|
except Exception:
|
||||||
|
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.
|
||||||
|
|
||||||
|
@ -170,7 +177,7 @@ class BillForm(FlaskForm):
|
||||||
|
|
||||||
|
|
||||||
class MemberForm(FlaskForm):
|
class MemberForm(FlaskForm):
|
||||||
name = StringField(_("Name"), validators=[DataRequired()])
|
name = StringField(_("Name"), validators=[DataRequired()], 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,
|
||||||
|
|
|
@ -632,6 +632,16 @@ 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")
|
||||||
|
|
||||||
|
@ -1220,7 +1230,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