Revision 9a06d96f snf-astakos-app/astakos/im/util.py
b/snf-astakos-app/astakos/im/util.py | ||
---|---|---|
43 | 43 |
from django.utils.translation import ugettext as _ |
44 | 44 |
from django.contrib.auth import authenticate |
45 | 45 |
from django.core.urlresolvers import reverse |
46 |
from django.core.exceptions import ValidationError |
|
47 |
|
|
46 |
from django.core.exceptions import ValidationError, ObjectDoesNotExist
|
|
47 |
from django.db.models.fields import Field |
|
48 | 48 |
from astakos.im.models import AstakosUser, Invitation |
49 | 49 |
from astakos.im.settings import COOKIE_NAME, \ |
50 | 50 |
COOKIE_DOMAIN, COOKIE_SECURE, FORCE_PROFILE_UPDATE, LOGGING_LEVEL |
... | ... | |
146 | 146 |
cookie_value = quote(user.email + '|' + user.auth_token) |
147 | 147 |
response.set_cookie(COOKIE_NAME, value=cookie_value, |
148 | 148 |
expires=expire_fmt, path='/', |
149 |
domain=COOKIE_DOMAIN, secure=COOKIE_SECURE |
|
150 |
) |
|
149 |
domain=COOKIE_DOMAIN, secure=COOKIE_SECURE) |
|
151 | 150 |
msg = 'Cookie [expiring %s] set for %s' % ( |
152 | 151 |
user.auth_token_expires, |
153 | 152 |
user.email |
... | ... | |
172 | 171 |
|
173 | 172 |
|
174 | 173 |
def reserved_email(email): |
175 |
return AstakosUser.objects.filter(email=email).count() != 0 |
|
174 |
return AstakosUser.objects.filter(email__iexact=email).count() != 0
|
|
176 | 175 |
|
177 | 176 |
|
178 | 177 |
def get_query(request): |
179 | 178 |
try: |
180 | 179 |
return request.__getattribute__(request.method) |
181 | 180 |
except AttributeError: |
182 |
return request.GET |
|
181 |
return {} |
|
182 |
|
|
183 |
|
|
184 |
def model_to_dict(obj, exclude=['AutoField', 'ForeignKey', 'OneToOneField'], |
|
185 |
include_empty=True): |
|
186 |
''' |
|
187 |
serialize model object to dict with related objects |
|
188 |
|
|
189 |
author: Vadym Zakovinko <vp@zakovinko.com> |
|
190 |
date: January 31, 2011 |
|
191 |
http://djangosnippets.org/snippets/2342/ |
|
192 |
''' |
|
193 |
tree = {} |
|
194 |
for field_name in obj._meta.get_all_field_names(): |
|
195 |
try: |
|
196 |
field = getattr(obj, field_name) |
|
197 |
except (ObjectDoesNotExist, AttributeError): |
|
198 |
continue |
|
199 |
|
|
200 |
if field.__class__.__name__ in ['RelatedManager', 'ManyRelatedManager']: |
|
201 |
if field.model.__name__ in exclude: |
|
202 |
continue |
|
203 |
|
|
204 |
if field.__class__.__name__ == 'ManyRelatedManager': |
|
205 |
exclude.append(obj.__class__.__name__) |
|
206 |
subtree = [] |
|
207 |
for related_obj in getattr(obj, field_name).all(): |
|
208 |
value = model_to_dict(related_obj, exclude=exclude) |
|
209 |
if value or include_empty: |
|
210 |
subtree.append(value) |
|
211 |
if subtree or include_empty: |
|
212 |
tree[field_name] = subtree |
|
213 |
continue |
|
214 |
|
|
215 |
field = obj._meta.get_field_by_name(field_name)[0] |
|
216 |
if field.__class__.__name__ in exclude: |
|
217 |
continue |
|
218 |
|
|
219 |
if field.__class__.__name__ == 'RelatedObject': |
|
220 |
exclude.append(field.model.__name__) |
|
221 |
tree[field_name] = model_to_dict(getattr(obj, field_name), |
|
222 |
exclude=exclude) |
|
223 |
continue |
|
224 |
|
|
225 |
value = getattr(obj, field_name) |
|
226 |
if field.__class__.__name__ == 'ForeignKey': |
|
227 |
value = unicode(value) if value is not None else value |
|
228 |
if value or include_empty: |
|
229 |
tree[field_name] = value |
|
230 |
|
|
231 |
return tree |
Also available in: Unified diff