Skip to content

Commit 5fbf71c

Browse files
committed
some new field types handled
1 parent 18b53a6 commit 5fbf71c

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from rest_framework.exceptions import PermissionDenied
2+
3+
def check_user_is_owner(user, request):
4+
''' Check if user request is the owner of the requested entity
5+
if not it raise an exception
6+
'''
7+
if not user == request.user:
8+
raise PermissionDenied()

elastic_framework/db/__init__.py

Whitespace-only changes.

elastic_framework/db/fields.py

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
''' Here we define all fields type
2+
3+
4+
'''
5+
6+
from __future__ import absolute_import
7+
8+
from django.db import models
9+
from south.modelsinspector import add_introspection_rules
10+
11+
12+
class CountryField(models.CharField):
13+
14+
# XXX TODO: define the list of value for CountrField...
15+
# same value must be used for LanguageField
16+
def __init__(self, name=None, **kwargs):
17+
field_params = {'max_length': 2, 'blank': True, 'null': True}
18+
field_params.update(kwargs)
19+
super(CountryField, self).__init__(name=name, **field_params)
20+
21+
class CurrencyField(models.CharField):
22+
23+
# XXX TODO: define the list of value for CurrencyField...
24+
def __init__(self, name=None, **kwargs):
25+
field_params = {'max_length': 3, 'blank': True, 'null': True}
26+
field_params.update(kwargs)
27+
super(CurrencyField, self).__init__(name=name, **field_params)
28+
29+
30+
class CharListField(models.TextField):
31+
''' In the model this type of field is a list of strings
32+
i.e. ['red', 'green', 'yellow']
33+
that in db is represented by 'red,green,yellow'
34+
35+
'''
36+
__metaclass__ = models.SubfieldBase
37+
38+
def get_prep_value(self, value):
39+
'''transform list of strings into comma-separeted string value'''
40+
if value is None:
41+
return None
42+
return u','.join(value)
43+
44+
def to_python(self, value):
45+
''' '''
46+
if value is None:
47+
return []
48+
if isinstance(value, basestring):
49+
return value.split(u',')
50+
return value
51+
52+
53+
add_introspection_rules([], ["^elastic_frameworks\.db\.fields\.CountryField"])
54+
55+
add_introspection_rules([], ["^elastic_frameworks\.db\.fields\.CurrencyField"])
56+
57+
add_introspection_rules([], ["^elastic_frameworks\.db\.fields\.CharListField"])

0 commit comments

Comments
 (0)