def album_view(request, album): app_context = request.app_context months_route = app_context.routes['month'] if album.date_range is not None: date = album.date_range[0] back_link = months_route.url( request, year=str(date.year), month='%02d' % date.month ) else: back_link = '' photos = _get_photos(request, album) return app_context.templates.render_to_response( 'album.pt', api=TemplateAPI(request), title=album.title, location=album.location, desc=album.desc, date_range=format_date_range(album.date_range), date_range_edit=format_editable_date_range(album.date_range), photos=photos, back_link=back_link, actions=get_actions(request, album, photos), ajax_url=model_url(request, album, 'edit.json'), )
def date_range_setter(album, name, value): try: if value.strip() == '' or value is None: setattr(album, name, album._guess_date_range()) return format_date_range(album.date_range) if '-' in value: begin, end = value.split('-') else: begin = end = value value = (dateparse(begin).date(), dateparse(end).date()) setattr(album, name, value) return format_date_range(getattr(album, name)) except ValueError: return 'Bad date format.'
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), '')
def homepage_view(request): catalog = request.app_context.catalog recent_albums = [] for album in catalog.albums(effective_principals(request), limit=40): recent_albums.append(dict( title=album.title, url=album.url(request), date_range=format_date_range(album.date_range) ) ) return request.app_context.templates.render_to_response( 'homepage.pt', api=TemplateAPI(request), recent_albums=recent_albums, )
def month_view(request, year, month): app_context = request.app_context catalog = app_context.catalog albums = [] for album in catalog.albums( effective_principals(request), month='%s-%s' % (year, month)): albums.append(dict( title=album.title, url=album.url(request), date_range=format_date_range(album.date_range), ) ) return app_context.templates.render_to_response( 'month.pt', api=TemplateAPI(request), albums=albums, date=format_month(int(year), int(month)) )