X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/198be737937aec7259e81ba791bf7f4e401795eb..b0d77fd4dd2b177e77e2bb038a5864567adfd9df:/apps/filebrowser/.svn/text-base/fields.py.svn-base diff --git a/apps/filebrowser/.svn/text-base/fields.py.svn-base b/apps/filebrowser/.svn/text-base/fields.py.svn-base deleted file mode 100644 index 85e981b9..00000000 --- a/apps/filebrowser/.svn/text-base/fields.py.svn-base +++ /dev/null @@ -1,121 +0,0 @@ -# coding: utf-8 - -import os - -# django imports -from django.db import models -from django import forms -from django.forms.widgets import Input -from django.db.models.fields import Field, CharField -from django.utils.encoding import force_unicode -from django.template.loader import render_to_string -from django.utils.translation import ugettext_lazy as _ - -# filebrowser imports -from filebrowser.functions import _url_to_path, _dir_from_url, _get_version_path, _url_join -from filebrowser.fb_settings import * -from filebrowser.base import FileObject - -class FileBrowseWidget(Input): - input_type = 'text' - - class Media: - js = (os.path.join(URL_FILEBROWSER_MEDIA, 'js/AddFileBrowser.js'), ) - - def __init__(self, attrs=None): - self.directory = attrs.get('directory', '') - self.extensions = attrs.get('extensions', '') - self.format = attrs.get('format', '') - if attrs is not None: - self.attrs = attrs.copy() - else: - self.attrs = {} - - def render(self, name, value, attrs=None): - if value is None: - value = "" - final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) - final_attrs['search_icon'] = URL_FILEBROWSER_MEDIA + 'img/filebrowser_icon_show.gif' - final_attrs['directory'] = self.directory - final_attrs['extensions'] = self.extensions - final_attrs['format'] = self.format - final_attrs['ADMIN_THUMBNAIL'] = ADMIN_THUMBNAIL - final_attrs['DEBUG'] = DEBUG - if value != "": - try: - final_attrs['directory'] = os.path.split(value.path_relative_directory)[0] - except: - pass - return render_to_string("filebrowser/custom_field.html", locals()) - - -class FileBrowseFormField(forms.CharField): - widget = FileBrowseWidget - - default_error_messages = { - 'extension': _(u'Extension %(ext)s is not allowed. Only %(allowed)s is allowed.'), - } - - def __init__(self, max_length=None, min_length=None, - directory=None, extensions=None, format=None, - *args, **kwargs): - self.max_length, self.min_length = max_length, min_length - self.directory = directory - self.extensions = extensions - if format: - self.format = format or '' - self.extensions = extensions or EXTENSIONS.get(format) - super(FileBrowseFormField, self).__init__(*args, **kwargs) - - def clean(self, value): - value = super(FileBrowseFormField, self).clean(value) - if value == '': - return value - file_extension = os.path.splitext(value)[1].lower() - if self.extensions and not file_extension in self.extensions: - raise forms.ValidationError(self.error_messages['extension'] % {'ext': file_extension, 'allowed': ", ".join(self.extensions)}) - return value - - -class FileBrowseField(Field): - __metaclass__ = models.SubfieldBase - - def __init__(self, *args, **kwargs): - self.directory = kwargs.pop('directory', '') - self.extensions = kwargs.pop('extensions', '') - self.format = kwargs.pop('format', '') - return super(FileBrowseField, self).__init__(*args, **kwargs) - - def to_python(self, value): - if not value or isinstance(value, FileObject): - return value - return FileObject(_url_to_path(value)) - - def get_db_prep_value(self, value): - if value is None: - return None - return unicode(value) - - - def get_manipulator_field_objs(self): - return [oldforms.TextField] - - def get_internal_type(self): - return "CharField" - - def formfield(self, **kwargs): - attrs = {} - attrs["directory"] = self.directory - attrs["extensions"] = self.extensions - attrs["format"] = self.format - defaults = { - 'form_class': FileBrowseFormField, - 'widget': FileBrowseWidget(attrs=attrs), - 'directory': self.directory, - 'extensions': self.extensions, - 'format': self.format - } - defaults.update(kwargs) - return super(FileBrowseField, self).formfield(**defaults) - -