def save(self): picture = super(AddPictureForm, self).save(commit=False) picture.submitter = request.user # при сохранение, поле заполняем данными из request if not len(request.META["HTTP_USER_AGENT"]) > 4: if not imghdr.what(None, h=picture.data): # проверяем тип файла raise forms.ValidationError( u'Filetype is not png format') try: width_samll = Settings.all().get().width_for_small_picture width_cover = Settings.all().get().width_for_cover_album except: width_samll = getattr(settings, 'WIDTH_FOR_SMALL_PICTURE', 400) width_cover = getattr(settings, 'WIDTH_FOR_COVER_ALBUM', 200) picture.data_small = images.resize(picture.data, width=width_samll) picture.data_cover = images.resize(picture.data, width=width_cover) # код для контролирования кол-ва занимаемого места user_free_size = User.get(request.user.key()) user_free_size.free_size = user_free_size.free_size - len( picture.data) - len(picture.data_small) - len( picture.data_cover) user_free_size.put() picture.save() return picture
def clear_old_picture(request): """ Функция для выполнения в cron Удаляет изображения старше * дней (значение берется из настроек в БД) """ try: days = Settings.all().get().days_for_old_picture except: days = getattr(settings, 'DAYS_FOR_OLD_PICTURE', 30) query = Picture.all().filter( "submitted_date <", datetime.datetime.today() - datetime.timedelta(days=days)) response = HttpResponse() for pic in query: response.write("<br/>Delete: " + str(pic.name)) # код для контролирования кол-ва занимаемого места user_free_size = User.get(pic.submitter.key()) user_free_size.free_size = user_free_size.free_size + len( pic.data) + len(pic.data_small) + len(pic.data_cover) user_free_size.put() pic.delete() response.write("<br/>Delete END: " + str(len(query))) return response
def save(self): picture = super(AddPictureForm, self).save(commit=False) picture.submitter = request.user # при сохранение, поле заполняем данными из request if not len(request.META["HTTP_USER_AGENT"])>4: if not imghdr.what(None, h=picture.data): # проверяем тип файла raise forms.ValidationError(u'Filetype is not png format') try: width_samll = Settings.all().get().width_for_small_picture width_cover = Settings.all().get().width_for_cover_album except: width_samll = getattr(settings, 'WIDTH_FOR_SMALL_PICTURE', 400) width_cover = getattr(settings, 'WIDTH_FOR_COVER_ALBUM', 200) picture.data_small = images.resize( picture.data, width=width_samll) picture.data_cover = images.resize( picture.data, width=width_cover) # код для контролирования кол-ва занимаемого места user_free_size = User.get(request.user.key()) user_free_size.free_size = user_free_size.free_size - len(picture.data) - len(picture.data_small) - len(picture.data_cover) user_free_size.put() picture.save() return picture
def clear_old_picture(request): """ Функция для выполнения в cron Удаляет изображения старше * дней (значение берется из настроек в БД) """ try: days = Settings.all().get().days_for_old_picture except: days = getattr(settings, 'DAYS_FOR_OLD_PICTURE', 30) query = Picture.all().filter("submitted_date <", datetime.datetime.today() - datetime.timedelta(days=days)) response = HttpResponse() for pic in query: response.write("<br/>Delete: "+str(pic.name)) # код для контролирования кол-ва занимаемого места user_free_size = User.get(pic.submitter.key()) user_free_size.free_size = user_free_size.free_size + len(pic.data) + len(pic.data_small) + len(pic.data_cover) user_free_size.put() pic.delete() response.write("<br/>Delete END: "+str(len(query))) return response