0
|
1 |
from django.contrib import admin |
|
2 |
from django.conf.urls.defaults import * |
|
3 |
from django.shortcuts import render_to_response |
|
4 |
from django.template import RequestContext |
|
5 |
from django.conf import settings |
|
6 |
from models import * |
|
7 |
from forms import * |
|
8 |
from fileimport import * |
4
|
9 |
from ldt.ldt_utils import STORE |
|
10 |
from ldt.ldt_utils import ANALYZER |
0
|
11 |
|
|
12 |
import lucene |
|
13 |
|
|
14 |
admin.site.register(Project) |
|
15 |
|
|
16 |
class ContentAdmin(admin.ModelAdmin): |
|
17 |
|
|
18 |
def import_file(self, request): |
|
19 |
if request.method =='POST': |
|
20 |
form = LdtImportForm(request.POST, request.FILES) |
|
21 |
if form.is_valid(): |
|
22 |
filetoprocess =form.cleaned_data['importFile'] |
|
23 |
flatten = form.cleaned_data['flatten'] |
|
24 |
videoPath = form.cleaned_data['videoPath'] |
|
25 |
# fi = None |
|
26 |
fi = FileImport(filetoprocess, videoPath, flatten) |
|
27 |
try: |
|
28 |
fi.processFile() |
|
29 |
args = {'message': "File imported"} |
|
30 |
except FileImportError: |
|
31 |
non_field_errors = form.non_field_errors() |
|
32 |
non_field_errors.append("Error when importing : unknown file type") |
|
33 |
form._errors["__all__"] = non_field_errors |
|
34 |
args = {'message': "Can not import file, unknown file type", 'form': form} |
|
35 |
|
|
36 |
else: |
|
37 |
non_field_errors = form.non_field_errors() |
|
38 |
non_field_errors.append("Error when importing : invalid form") |
|
39 |
form._errors["__all__"] = non_field_errors |
|
40 |
args = {'message': "Error when importing : invalid form", 'form': form} |
|
41 |
else: |
|
42 |
form = LdtImportForm() |
|
43 |
args = {'form': form, 'current_app': self.admin_site.name, 'current_action' : 'import_file'} |
|
44 |
return render_to_response('admin/ldt/content/upload_form.html', args, context_instance=RequestContext(request)) |
|
45 |
|
|
46 |
def reindex(self, request): |
|
47 |
message = None |
|
48 |
if request.method == "POST": |
|
49 |
form = ReindexForm(request.POST) |
|
50 |
if form.is_valid(): |
|
51 |
# try: |
3
|
52 |
writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED) |
0
|
53 |
contentList = form.cleaned_data["contents"] |
|
54 |
indexer = ContentIndexer(contentList,writer) |
|
55 |
indexer.index_all() |
|
56 |
|
|
57 |
writer.close() |
|
58 |
message = "Indexation ok : " + repr(form.cleaned_data["contents"]) |
|
59 |
form = ReindexForm() |
|
60 |
# except Exception, inst: |
|
61 |
# non_field_errors = form.non_field_errors() |
|
62 |
# non_field_errors.append("Error when reindexing : " + cgi.escape(repr(inst))) |
|
63 |
# form._errors["__all__"] = non_field_errors |
|
64 |
#message = "ERROR : " + repr(non_field_errors) |
|
65 |
else: |
|
66 |
form = ReindexForm() |
|
67 |
|
|
68 |
return render_to_response('admin/ldt/content/reindex_form.html', {'form': form, 'message':message, 'current_app': self.admin_site.name, 'current_action' : 'reindex' }, context_instance=RequestContext(request)) |
|
69 |
|
|
70 |
def get_urls(self): |
|
71 |
urls = super(ContentAdmin, self).get_urls() |
|
72 |
content_urls = patterns('', |
|
73 |
url(r'^reindex/$', self.admin_site.admin_view(self.reindex), name="ldt_content_reindex"), |
4
|
74 |
# (r'^admin/ldt/content/import/upload/$', 'ldt.ldt_utils.views.uploadFile'), |
0
|
75 |
url(r'^import/$', self.admin_site.admin_view(self.import_file), name="ldt_content_import_file") |
|
76 |
) |
|
77 |
return content_urls + urls |
|
78 |
|
|
79 |
|
|
80 |
admin.site.register(Content, ContentAdmin) |