Skip to content

Commit 09f2656

Browse files
committed
Simplify signup form and api endpoint
1 parent 02c4d26 commit 09f2656

File tree

4 files changed

+56
-37
lines changed

4 files changed

+56
-37
lines changed

Diff for: api.py

+34-16
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class UnionResource(ModelResource):
2323

2424
class Meta:
2525
queryset = Union.objects.all()
26-
allowed_methods = ['get', 'post', 'put', 'patch']
26+
allowed_methods = ['get']
2727
authorization = Authorization()
2828
authentication = Authentication()
2929
filtering = {
@@ -36,16 +36,33 @@ def obj_create(self, bundle, request=None, **kwargs):
3636
return super(UnionResource, self).obj_create(bundle, request)
3737

3838

39+
class DistrictResource(ModelResource):
40+
union = fields.ForeignKey(UnionResource, 'union', full=True)
41+
42+
class Meta:
43+
queryset = District.objects.all()
44+
allowed_methods = ['get']
45+
authorization = Authorization()
46+
authentication = Authentication()
47+
filtering = {
48+
'union': ALL_WITH_RELATIONS
49+
}
50+
51+
def dehydrate(self, bundle):
52+
bundle.data['display_name'] = str(bundle.obj)
53+
return bundle
54+
55+
3956
class LeagueResource(ModelResource):
4057
class Meta:
4158
queryset = League.objects.all()
42-
allowed_methods = ['get', 'post', 'put']
59+
allowed_methods = ['get']
4360
authentication = Authentication()
4461
authorization = Authorization()
4562

4663

4764
class ClubResource(ModelResource):
48-
union = fields.ForeignKey(UnionResource, 'union', full=True)
65+
district = fields.ForeignKey(DistrictResource, 'district', full=True)
4966
# teams = fields.ToManyField('handball.api.TeamResource', 'teams')
5067

5168
class Meta:
@@ -59,7 +76,7 @@ class Meta:
5976

6077
def obj_create(self, bundle, request=None, **kwargs):
6178
# The user to create a club becomes its first manager (for lack of other people)
62-
bundle.data['managers'] = ['/api/v1/person/' + str(request.user.get_profile().id) + '/']
79+
# bundle.data['managers'] = ['/api/v1/person/' + str(request.user.get_profile().id) + '/']
6380
return super(ClubResource, self).obj_create(bundle, request)
6481

6582

@@ -94,6 +111,7 @@ class Meta:
94111

95112
class PersonResource(ModelResource):
96113
user = fields.ForeignKey(UserResource, 'user', blank=True, null=True)
114+
clubs = fields.ManyToManyField(ClubResource, 'clubs')
97115
# teams = fields.ManyToManyField(TeamResource, 'teams')
98116

99117
class Meta:
@@ -183,26 +201,26 @@ def sign_up(request):
183201
username = form.cleaned_data['username']
184202
password = form.cleaned_data['password']
185203
email = form.cleaned_data['email']
186-
gender = form.cleaned_data['gender']
187204
first_name = form.cleaned_data['first_name']
188205
last_name = form.cleaned_data['last_name']
189-
pass_number = form.cleaned_data['pass_number']
190-
address = form.cleaned_data['address']
191-
city = form.cleaned_data['city']
192-
zip_code = form.cleaned_data['zip_code']
193-
mobile_number = form.cleaned_data['mobile_number']
206+
# gender = form.cleaned_data['gender']
207+
# pass_number = form.cleaned_data['pass_number']
208+
# address = form.cleaned_data['address']
209+
# city = form.cleaned_data['city']
210+
# zip_code = form.cleaned_data['zip_code']
211+
# mobile_number = form.cleaned_data['mobile_number']
194212

195213
user = User.objects.create(username=username, password=password, first_name=first_name, last_name=last_name, email=email)
196214

197215
profile = form.cleaned_data['profile'] or Person.objects.create()
198216
profile.first_name = first_name
199217
profile.last_name = last_name
200-
profile.gender = gender
201-
profile.pass_number = pass_number
202-
profile.address = address
203-
profile.city = city
204-
profile.zip_code = zip_code
205-
profile.mobile_number = mobile_number
218+
# profile.gender = gender
219+
# profile.pass_number = pass_number
220+
# profile.address = address
221+
# profile.city = city
222+
# profile.zip_code = zip_code
223+
# profile.mobile_number = mobile_number
206224
profile.user = user
207225

208226
# Build the activation key

Diff for: forms.py

+19-19
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ class SignUpForm(forms.Form):
1212
# password_repeat = forms.CharField(widget=forms.PasswordInput,
1313
# label=_('Repeat Password'), required=True)
1414

15-
gender = forms.ChoiceField(choices=(('male', _('male')), ('female', _('female'))))
1615
first_name = forms.CharField(label=_('First Name'), required=True)
1716
last_name = forms.CharField(label=_('Last Name'), required=True)
1817
profile = forms.ModelChoiceField(required=False, queryset=Person.objects.filter(user__isnull=True))
19-
pass_number = forms.IntegerField(label=_('Pass Number'), required=False)
20-
address = forms.CharField(label=_('Address'), required=False)
21-
city = forms.CharField(label=_('City'), required=False)
22-
zip_code = forms.IntegerField(label=_('Zip Code'), required=False)
23-
mobile_number = forms.CharField(label=_('Mobile Number'), required=False)
18+
# gender = forms.ChoiceField(choices=(('male', _('male')), ('female', _('female'))))
19+
# pass_number = forms.IntegerField(label=_('Pass Number'), required=False)
20+
# address = forms.CharField(label=_('Address'), required=False)
21+
# city = forms.CharField(label=_('City'), required=False)
22+
# zip_code = forms.IntegerField(label=_('Zip Code'), required=False)
23+
# mobile_number = forms.CharField(label=_('Mobile Number'), required=False)
2424

2525
def clean_username(self):
2626
data = self.cleaned_data['username']
@@ -39,22 +39,22 @@ def clean_email(self):
3939
raise forms.ValidationError(
4040
_('A user with this email is already registered.'))
4141

42-
def clean(self):
43-
cleaned_data = super(SignUpForm, self).clean()
44-
pass_number = cleaned_data['pass_number']
45-
profile = cleaned_data['profile'] or {'id': None}
42+
# def clean(self):
43+
# cleaned_data = super(SignUpForm, self).clean()
44+
# pass_number = cleaned_data['pass_number']
45+
# profile_id = cleaned_data['profile'].id if cleaned_data['profile'] else None
4646

47-
# check if pass number is unique
48-
try:
49-
Person.objects.exclude(id=profile.id).get(pass_number=pass_number)
50-
except Person.DoesNotExist:
51-
return cleaned_data
47+
# # check if pass number is unique
48+
# try:
49+
# Person.objects.exclude(id=profile_id).get(pass_number=pass_number)
50+
# except Person.DoesNotExist:
51+
# return cleaned_data
5252

53-
msg = _('A user with this pass number does already exist!')
54-
self._errors['pass_number'] = self.error_class([msg])
55-
del cleaned_data['pass_number']
53+
# msg = _('A user with this pass number does already exist!')
54+
# self._errors['pass_number'] = self.error_class([msg])
55+
# del cleaned_data['pass_number']
5656

57-
return cleaned_data
57+
# return cleaned_data
5858

5959
# def clean(self):
6060
# cleaned_data = super(SignUpForm, self).clean()

Diff for: models.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99

1010
class Person(models.Model):
11-
user = models.OneToOneField(User, blank=True)
11+
user = models.OneToOneField(User, blank=True, null=True)
1212
clubs = models.ManyToManyField('Club', related_name='members', blank=False)
1313

1414
# Fields used for user activation after signup
@@ -49,7 +49,7 @@ def __unicode__(self):
4949
class Club(models.Model):
5050
name = models.CharField(max_length=50)
5151

52-
union = models.ForeignKey('Union', related_name='clubs')
52+
district = models.ForeignKey('District', related_name='clubs')
5353
managers = models.ManyToManyField('Person', blank=True, related_name='clubs_managed')
5454

5555
def __unicode__(self):

Diff for: urls.py

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
v1_api.register(PersonResource())
1212
v1_api.register(GameResource())
1313
v1_api.register(LeagueResource())
14+
v1_api.register(DistrictResource())
1415

1516
urlpatterns = patterns('handball.views',
1617
(r'^$', 'index'),

0 commit comments

Comments
 (0)