add folder form

This commit is contained in:
Sanj 2011-02-08 18:57:17 +05:30
parent d41107dd5a
commit 07264983c6
4 changed files with 75 additions and 5 deletions

View File

@ -9,7 +9,7 @@ from os.path import join
from PIL import Image from PIL import Image
from django.template import Template, Context from django.template import Template, Context
from django.template.loader import get_template from django.template.loader import get_template
from settings import MEDIA_ROOT from settings import MEDIA_ROOT, PROJECT_PATH
from django.contrib.auth.models import User, Group from django.contrib.auth.models import User, Group
from tagging.fields import TagField from tagging.fields import TagField
from tagging.models import Tag from tagging.models import Tag
@ -383,7 +383,7 @@ class Page(models.Model):
'id': v.id, 'id': v.id,
'title': v.fil.title, 'title': v.fil.title,
'description': v.fil.description, 'description': v.fil.description,
'file': v.fil.file.url, 'file': v.fil.file.url.replace(PROJECT_PATH, ""),
'mime': 'video' 'mime': 'video'
} }
videos.append(r) videos.append(r)
@ -394,7 +394,7 @@ class Page(models.Model):
'id': a.id, 'id': a.id,
'title': a.fil.title, 'title': a.fil.title,
'description': a.fil.description, 'description': a.fil.description,
'file': a.fil.file.url, 'file': a.fil.file.url.replace(PROJECT_PATH, ""),
'mime': 'audio' 'mime': 'audio'
} }
audios.append(r) audios.append(r)

View File

@ -13,7 +13,7 @@ except:
from django.template import Template, Context from django.template import Template, Context
from django.template.loader import get_template from django.template.loader import get_template
from os.path import join from os.path import join
from settings import MEDIA_ROOT, SITE_BASE, UPLOAD_ROOT from settings import MEDIA_ROOT, SITE_BASE, UPLOAD_ROOT, PROJECT_PATH
from PIL import Image from PIL import Image
import os import os
from print_pdf import print_url_list from print_pdf import print_url_list
@ -413,7 +413,7 @@ def category_json(request):
iconPath = "/static/images/binimages/jpg.jpg" iconPath = "/static/images/binimages/jpg.jpg"
resizedPath = filePath resizedPath = filePath
else: else:
filePath = r.file.url filePath = r.file.url.replace(PROJECT_PATH, "") #FIXME: Why does file.url return system path and not relative URL??
iconPath = "/static/images/binimages/%s.jpg" % (r.type) iconPath = "/static/images/binimages/%s.jpg" % (r.type)
resizedPath = filePath resizedPath = filePath
if r.type == 'video': if r.type == 'video':

View File

@ -1,6 +1,75 @@
# Create your views here. # Create your views here.
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django import forms
from models import Category, File
from settings import UPLOAD_ROOT
import os
from os.path import join, isdir, getmtime, basename
'''
class folder_names(object):
def __iter__(self):
return iter(map(lambda x: (x,x), os.listdir(UPLOAD_ROOT)))
'''
def getFolderList():
os.chdir(UPLOAD_ROOT)
dirs = filter(isdir, os.listdir(UPLOAD_ROOT))
full_dirs = [join(UPLOAD_ROOT, d) for d in dirs]
full_dirs.sort(key=lambda x: getmtime(x), reverse=True)
return map(lambda x: (basename(x), basename(x)), full_dirs)
class FolderSelect(forms.widgets.Select):
def _get_choices(self):
return getFolderList()
# return map(lambda x: (x,x), os.listdir(UPLOAD_ROOT))
def _set_choices(self, value):
self._choices = value
choices = property(_get_choices, _set_choices)
class FolderField(forms.ChoiceField):
widget = FolderSelect
def _get_choices(self):
return getFolderList()
# return map(lambda x: (x,x), os.listdir(UPLOAD_ROOT))
class AddFolderForm(forms.Form):
folder_name = FolderField(label="Name of Folder")
category = forms.ModelChoiceField(Category.objects, required=False, label="Study")
category_name = forms.CharField(required=False, label="Create New Study")
@login_required
def add_folder(request):
if request.POST:
form = AddFolderForm(request.POST)
if form.is_valid():
folder_name = form.cleaned_data['folder_name']
category = form.cleaned_data['category']
if not category:
category_name = form.cleaned_data['category_name']
category = Category(name=category_name)
category.save()
user = request.user
# import pdb;pdb.set_trace()
File.addFiles(category, user, folder_name)
return render_to_response("files/added_folder.html", {
'folder_name': folder_name,
'category_name': category.name,
'username': user.username
})
else:
return render_to_response("files/add_folder.html", {'form': form})
else:
form = AddFolderForm()
return render_to_response("files/add_folder.html", {'form': form})
def editor(request): def editor(request):
return render_to_response("editor.html") return render_to_response("editor.html")

View File

@ -17,6 +17,7 @@ urlpatterns = patterns('',
# (r'^admin/doc/', include('django.contrib.admindocs.urls')), # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
(r'^comments/', include('django.contrib.comments.urls')), (r'^comments/', include('django.contrib.comments.urls')),
(r'^edit/', include('editor.urls')), (r'^edit/', include('editor.urls')),
(r'files/', include('files.urls')),
(r'^gallery/', 'files.views.gallery'), (r'^gallery/', 'files.views.gallery'),
# Uncomment the next line to enable the admin: # Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)), (r'^admin/', include(admin.site.urls)),