Skip to content

Commit 5ca35de

Browse files
author
Jan Schrewe
committed
Merge pull request jschrewe#4 from jsocol/master
Fix package install/use
2 parents f99273f + 2e34ab5 commit 5ca35de

File tree

4 files changed

+45
-41
lines changed

4 files changed

+45
-41
lines changed

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include readme.md

mongodbforms/fieldgenerator.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# -*- coding: utf-8 -*-
12
"""
23
Based on django mongotools (https://github.com/wpjunior/django-mongotools) by
34
Wilson Júnior (wilsonpjunior@gmail.com).
@@ -16,22 +17,22 @@ class MongoFormFieldGenerator(object):
1617
"""This class generates Django form-fields for mongoengine-fields."""
1718

1819
def generate(self, field, **kwargs):
19-
"""Tries to lookup a matching formfield generator (lowercase
20+
"""Tries to lookup a matching formfield generator (lowercase
2021
field-classname) and raises a NotImplementedError of no generator
2122
can be found.
2223
"""
2324
field_name = field.__class__.__name__.lower()
2425
if hasattr(self, 'generate_%s' % field_name):
2526
return getattr(self, 'generate_%s' % field_name)(field, **kwargs)
26-
27+
2728
for cls in field.__class__.__bases__:
2829
cls_name = cls.__name__.lower()
2930
if hasattr(self, 'generate_%s' % cls_name):
3031
return getattr(self, 'generate_%s' % cls_name)(field, **kwargs)
3132

3233
raise NotImplementedError('%s is not supported by MongoForm' % \
3334
field.__class__.__name__)
34-
35+
3536
def get_field_choices(self, field, include_blank=True,
3637
blank_choice=BLANK_CHOICE_DASH):
3738
first_choice = include_blank and blank_choice or []
@@ -71,7 +72,7 @@ def generate_stringfield(self, field, **kwargs):
7172

7273
if field.max_length and not field.choices:
7374
defaults['max_length'] = field.max_length
74-
75+
7576
if field.max_length is None and not field.choices:
7677
defaults['widget'] = forms.Textarea
7778

@@ -84,7 +85,7 @@ def generate_stringfield(self, field, **kwargs):
8485

8586
if not field.required:
8687
defaults['empty_value'] = None
87-
88+
8889
defaults.update(kwargs)
8990
return form_class(**defaults)
9091

@@ -95,9 +96,9 @@ def generate_emailfield(self, field, **kwargs):
9596
'max_length': field.max_length,
9697
'initial': field.default,
9798
'label': self.get_field_label(field),
98-
'help_text': self.get_field_help_text(field)
99+
'help_text': self.get_field_help_text(field)
99100
}
100-
101+
101102
defaults.update(kwargs)
102103
return forms.EmailField(**defaults)
103104

@@ -110,7 +111,7 @@ def generate_urlfield(self, field, **kwargs):
110111
'label': self.get_field_label(field),
111112
'help_text': self.get_field_help_text(field)
112113
}
113-
114+
114115
defaults.update(kwargs)
115116
return forms.URLField(**defaults)
116117

@@ -123,9 +124,9 @@ def generate_intfield(self, field, **kwargs):
123124
'initial': field.default,
124125
'label': self.get_field_label(field),
125126
'choices': self.get_field_choices(field),
126-
'help_text': self.get_field_help_text(field)
127+
'help_text': self.get_field_help_text(field)
127128
}
128-
129+
129130
defaults.update(kwargs)
130131
return forms.TypedChoiceField(**defaults)
131132
else:
@@ -135,9 +136,9 @@ def generate_intfield(self, field, **kwargs):
135136
'max_value': field.max_value,
136137
'initial': field.default,
137138
'label': self.get_field_label(field),
138-
'help_text': self.get_field_help_text(field)
139+
'help_text': self.get_field_help_text(field)
139140
}
140-
141+
141142
defaults.update(kwargs)
142143
return forms.IntegerField(**defaults)
143144

@@ -176,19 +177,19 @@ def generate_booleanfield(self, field, **kwargs):
176177
'initial': field.default,
177178
'label': self.get_field_label(field),
178179
'choices': self.get_field_choices(field),
179-
'help_text': self.get_field_help_text(field)
180+
'help_text': self.get_field_help_text(field)
180181
}
181-
182+
182183
defaults.update(kwargs)
183184
return forms.TypedChoiceField(**defaults)
184185
else:
185186
defaults = {
186187
'required': field.required,
187188
'initial': field.default,
188189
'label': self.get_field_label(field),
189-
'help_text': self.get_field_help_text(field)
190+
'help_text': self.get_field_help_text(field)
190191
}
191-
192+
192193
defaults.update(kwargs)
193194
return forms.BooleanField(**defaults)
194195

@@ -198,7 +199,7 @@ def generate_datetimefield(self, field, **kwargs):
198199
'initial': field.default,
199200
'label': self.get_field_label(field),
200201
}
201-
202+
202203
defaults.update(kwargs)
203204
return forms.DateTimeField(**defaults)
204205

@@ -208,7 +209,7 @@ def generate_referencefield(self, field, **kwargs):
208209
'help_text': self.get_field_help_text(field),
209210
'required': field.required
210211
}
211-
212+
212213
defaults.update(kwargs)
213214
return ReferenceField(field.document_type.objects, **defaults)
214215

@@ -219,9 +220,9 @@ def generate_listfield(self, field, **kwargs):
219220
'required': field.required,
220221
'label': self.get_field_label(field),
221222
'help_text': self.get_field_help_text(field),
222-
'widget': forms.CheckboxSelectMultiple
223+
'widget': forms.CheckboxSelectMultiple
223224
}
224-
225+
225226
defaults.update(kwargs)
226227
return forms.MultipleChoiceField(**defaults)
227228
elif isinstance(field.field, MongoReferenceField):
@@ -230,19 +231,19 @@ def generate_listfield(self, field, **kwargs):
230231
'help_text': self.get_field_help_text(field),
231232
'required': field.required
232233
}
233-
234+
234235
defaults.update(kwargs)
235236
f = DocumentMultipleChoiceField(field.field.document_type.objects, **defaults)
236237
return f
237-
238+
238239
def generate_filefield(self, field, **kwargs):
239240
return forms.FileField(**kwargs)
240-
241+
241242
class MongoDefaultFormFieldGenerator(MongoFormFieldGenerator):
242243
"""This class generates Django form-fields for mongoengine-fields."""
243-
244+
244245
def generate(self, field, **kwargs):
245-
"""Tries to lookup a matching formfield generator (lowercase
246+
"""Tries to lookup a matching formfield generator (lowercase
246247
field-classname) and raises a NotImplementedError of no generator
247248
can be found.
248249
"""
@@ -253,15 +254,15 @@ def generate(self, field, **kwargs):
253254
# for a widget.
254255
# TODO: Somehow add a warning
255256
defaults = {'required': field.required}
256-
257+
257258
if hasattr(field, 'min_length'):
258259
defaults['min_length'] = field.min_length
259-
260+
260261
if hasattr(field, 'max_length'):
261262
defaults['max_length'] = field.max_length
262-
263+
263264
if hasattr(field, 'default'):
264265
defaults['initial'] = field.default
265-
266+
266267
defaults.update(kwargs)
267-
return forms.CharField(**kwargs)
268+
return forms.CharField(**kwargs)

mongodbforms/fields.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
# -*- coding: utf-8 -*-
12
"""
23
Based on django mongotools (https://github.com/wpjunior/django-mongotools) by
34
Wilson Júnior (wilsonpjunior@gmail.com).
45
"""
56

67
from django import forms
78
from django.core.validators import EMPTY_VALUES
9+
from django.utils.translation import ugettext as _
810
from pymongo.errors import InvalidId
911
from pymongo.objectid import ObjectId
1012
from django.utils.encoding import smart_unicode, force_unicode
@@ -17,7 +19,7 @@ def __init__(self, field):
1719
def __iter__(self):
1820
if self.field.empty_label is not None:
1921
yield (u"", self.field.empty_label)
20-
22+
2123
for obj in self.queryset.all():
2224
yield self.choice(obj)
2325

@@ -39,18 +41,18 @@ class ReferenceField(forms.ChoiceField):
3941
"""
4042
def __init__(self, queryset, empty_label=u"---------",
4143
*aargs, **kwaargs):
42-
44+
4345
forms.Field.__init__(self, *aargs, **kwaargs)
4446
self.queryset = queryset
4547
self.empty_label = empty_label
46-
48+
4749
def _get_queryset(self):
4850
return self._queryset
49-
51+
5052
def prepare_value(self, value):
5153
if hasattr(value, '_meta'):
5254
return value.pk
53-
55+
5456
return super(ReferenceField, self).prepare_value(value)
5557

5658
def _set_queryset(self, queryset):
@@ -63,7 +65,7 @@ def _get_choices(self):
6365
return MongoChoiceIterator(self)
6466

6567
choices = property(_get_choices, forms.ChoiceField._set_choices)
66-
68+
6769
def label_from_instance(self, obj):
6870
"""
6971
This method is used to convert objects into strings; it's used to
@@ -88,7 +90,7 @@ def clean(self, value):
8890

8991
class DocumentMultipleChoiceField(ReferenceField):
9092
"""A MultipleChoiceField whose choices are a model QuerySet."""
91-
widget = forms.SelectMultiple
93+
widget = forms.SelectMultiple
9294
hidden_widget = forms.MultipleHiddenInput
9395
default_error_messages = {
9496
'list': _(u'Enter a list of values.'),
@@ -98,7 +100,7 @@ class DocumentMultipleChoiceField(ReferenceField):
98100
}
99101

100102
def __init__(self, queryset, *args, **kwargs):
101-
super(DocumentMultipleChoiceField, self).__init__(queryset, empty_label=None, *args, **kwargs)
103+
super(DocumentMultipleChoiceField, self).__init__(queryset, empty_label=None, *args, **kwargs)
102104

103105
def clean(self, value):
104106
if self.required and not value:
@@ -108,7 +110,7 @@ def clean(self, value):
108110
if not isinstance(value, (list, tuple)):
109111
raise forms.ValidationError(self.error_messages['list'])
110112
key = 'pk'
111-
113+
112114
filter_ids = []
113115
for pk in value:
114116
try:

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
package_data={
1313
},
1414
license='New BSD License',
15-
long_description=open('README.txt').read(),
16-
)
15+
long_description=open('readme.md').read(),
16+
)

0 commit comments

Comments
 (0)