def date_setter(photo, name, value): try: if value.strip() == '': value = None if value is not None: value = dateparse(value).date() setattr(photo, name, value) ret_value = getattr(photo, name) if ret_value is None: return '' return format_date(ret_value) except ValueError: return 'Bad date format.'
def photo_view(request, photo): app_context = request.app_context images_route = app_context.routes['images'] version = app_context.images.version(photo, PHOTO_SIZE) src = images_route.url(request, fname=version['fname']) width, height = version['size'] catalog = app_context.catalog siblings = list(catalog.photos(photo.__parent__, effective_principals(request))) index = 0 n_siblings = len(siblings) for i in xrange(n_siblings): if siblings[i].id == photo.id: index = i break app_url = request.application_url.rstrip('/') prev_link = next_link = None if index > 0: prev_link = siblings[index-1].url(request) if index < n_siblings -1: next_link = siblings[index+1].url(request) back_link = model_url(request, photo.__parent__) ajax_url = model_url(request, photo, 'edit.json') return app_context.templates.render_to_response( 'photo.pt', api=TemplateAPI(request), title=photo.title, location=photo.location, date=format_date(photo.date), desc=photo.desc, visibility=photo.visibility, src=src, width=width, height=height, prev_link=prev_link, next_link=next_link, back_link=back_link, download_link=model_url(request, photo, 'dl'), ajax_url=ajax_url, actions=simplejson.dumps(get_actions(photo, request)), )
def test_it(self): from edwin.views.util import format_date_range from datetime import date self.assertEqual( format_date_range((date(2007, 9, 9), date(2007, 9, 9))), 'September 9, 2007' ) self.assertEqual( format_date_range((date(2007, 9, 9), date(2007, 9, 11))), 'September 9-11, 2007' ) self.assertEqual( format_date_range((date(2007, 9, 9), date(2007, 10, 9))), 'September 9 - October 9, 2007' ) self.assertEqual( format_date_range((date(2007, 9, 9), date(2008, 9, 9))), 'September 9, 2007 - September 9, 2008' ) self.assertEqual(format_date_range(None), '') from edwin.views.util import format_date self.assertEqual(format_date(None), '')