Skip to content

Commit 98a5bfb

Browse files
committed
Merge pull request #12 from grahamu/fix5
Converting views to Generic CBVs
2 parents dbaaf15 + 1b5a4fc commit 98a5bfb

File tree

12 files changed

+630
-206
lines changed

12 files changed

+630
-206
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ MANIFEST
99
docs/_build/
1010
htmlcov/
1111
.eggs/
12+
.python-version

pinax/documents/forms.py

+18-15
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,35 @@
66
def user_display(user):
77
return user.username
88

9-
from .models import Folder
9+
from .models import (
10+
Document,
11+
Folder,
12+
)
1013

1114

12-
class FolderCreateForm(forms.Form):
15+
class FolderCreateForm(forms.ModelForm):
1316

14-
name = forms.CharField(max_length=140)
15-
parent = forms.ModelChoiceField(
16-
queryset=Folder.objects.none(),
17-
widget=forms.HiddenInput,
18-
required=False,
19-
)
17+
class Meta:
18+
model = Folder
19+
fields = ["name", "parent"]
20+
widgets = {
21+
"parent": forms.HiddenInput,
22+
}
2023

2124
def __init__(self, *args, **kwargs):
2225
folders = kwargs.pop("folders")
2326
super(FolderCreateForm, self).__init__(*args, **kwargs)
2427
self.fields["parent"].queryset = folders
2528

2629

27-
class DocumentCreateForm(forms.Form):
30+
class DocumentCreateForm(forms.ModelForm):
2831

29-
folder = forms.ModelChoiceField(
30-
queryset=Folder.objects.none(),
31-
widget=forms.HiddenInput,
32-
required=False,
33-
)
34-
file = forms.FileField()
32+
class Meta:
33+
model = Document
34+
fields = ["folder", "file"]
35+
widgets = {
36+
"folder": forms.HiddenInput,
37+
}
3538

3639
def __init__(self, *args, **kwargs):
3740
folders = kwargs.pop("folders")

pinax/documents/models.py

+3-7
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,8 @@ def shared_parent(self):
133133

134134
def can_share(self, user):
135135
"""
136-
Determines the shared parent and checks if given user is the author
137-
of the folder.
136+
Ensures folder is top-level and `user` is the author.
138137
"""
139-
# sp = self.shared_parent()
140-
# return sp.author_id == user.id and self == sp
141-
# only share folders that live at the top-level
142138
return self.parent_id is None and self.author_id == user.id
143139

144140
def share(self, users):
@@ -165,7 +161,7 @@ def share(self, users):
165161
class Document(models.Model):
166162

167163
name = models.CharField(max_length=255)
168-
folder = models.ForeignKey(Folder, null=True)
164+
folder = models.ForeignKey(Folder, null=True, blank=True)
169165
author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name="+")
170166
created = models.DateTimeField(default=timezone.now)
171167
modified = models.DateTimeField(default=timezone.now)
@@ -263,7 +259,7 @@ def download_url(self):
263259
class MemberSharedUser(models.Model):
264260

265261
user = models.ForeignKey(settings.AUTH_USER_MODEL)
266-
# @@@ priviledges
262+
# @@@ privileges
267263

268264
class Meta:
269265
abstract = True

pinax/documents/tests/models.py

Whitespace-only changes.

pinax/documents/tests/test.py

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from test_plus.test import TestCase as PlusTestCase
2+
3+
4+
class TestCase(PlusTestCase):
5+
pass

0 commit comments

Comments
 (0)