web/ldt/ldt_utils/admin.py
author ymh <ymh.work@gmail.com>
Thu, 10 Jun 2010 18:56:59 +0200
changeset 16 b3692a42ac79
parent 10 84e31387a741
permissions -rw-r--r--
version + add indent and callback
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
from django.contrib import admin
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     2
from django.conf.urls.defaults import *
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     3
from django.shortcuts import render_to_response
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     4
from django.template import RequestContext
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     5
from django.conf import settings
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     6
from models import *
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     7
from forms import *
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     8
from fileimport import *
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     9
from ldt.ldt_utils import STORE
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    10
from ldt.ldt_utils import ANALYZER
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    12
import lucene
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    13
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    14
admin.site.register(Project)
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    16
class ContentAdmin(admin.ModelAdmin):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    17
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    18
    def import_file(self, request):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    19
        if request.method =='POST':
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    20
            form = LdtImportForm(request.POST, request.FILES)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    21
            if form.is_valid():
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    22
                filetoprocess =form.cleaned_data['importFile']
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    23
                flatten = form.cleaned_data['flatten']
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    24
                videoPath = form.cleaned_data['videoPath']
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    25
                # fi = None
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    26
                fi = FileImport(filetoprocess, videoPath, flatten)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    27
                try:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    28
                    fi.processFile()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    29
                    args = {'message': "File imported"}
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    30
                except FileImportError:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    31
                    non_field_errors = form.non_field_errors()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    32
                    non_field_errors.append("Error when importing : unknown file type")
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    33
                    form._errors["__all__"] = non_field_errors
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    34
                    args = {'message': "Can not import file, unknown file type", 'form': form}
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    35
                    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    36
            else:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    37
                non_field_errors = form.non_field_errors()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    38
                non_field_errors.append("Error when importing : invalid form")
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    39
                form._errors["__all__"] = non_field_errors
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    40
                args = {'message': "Error when importing : invalid form", 'form': form}
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    41
        else:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    42
            form = LdtImportForm()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    43
            args = {'form': form, 'current_app': self.admin_site.name, 'current_action' : 'import_file'}
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    44
        return render_to_response('admin/ldt_utils/content/upload_form.html', args, context_instance=RequestContext(request))
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    46
    def reindex(self, request):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    47
        message = None
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    48
        if request.method == "POST":
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    49
            form = ReindexForm(request.POST)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    50
            if form.is_valid():    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    51
                # try:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    52
                writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    53
                contentList = form.cleaned_data["contents"]
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    54
                indexer = ContentIndexer(contentList,writer)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    55
                indexer.index_all()
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    57
                writer.close()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    58
                message = "Indexation ok : " + repr(form.cleaned_data["contents"]) 
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    59
                form = ReindexForm()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    60
                # except Exception, inst:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    61
                    # non_field_errors = form.non_field_errors()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    62
                    # non_field_errors.append("Error when reindexing : " + cgi.escape(repr(inst)))
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    63
                    # form._errors["__all__"] = non_field_errors
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    64
                    #message = "ERROR : " + repr(non_field_errors)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    65
        else:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    66
            form = ReindexForm()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    67
    
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    68
        return render_to_response('admin/ldt_utils/content/reindex_form.html', {'form': form, 'message':message, 'current_app': self.admin_site.name, 'current_action' : 'reindex' }, context_instance=RequestContext(request))
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    69
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    70
    def get_urls(self):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    71
        urls = super(ContentAdmin, self).get_urls()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    72
        content_urls = patterns('',
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    73
            url(r'^reindex/$', self.admin_site.admin_view(self.reindex), name="ldt_content_reindex"),
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    74
    # (r'^admin/ldt/content/import/upload/$', 'ldt.ldt_utils.views.uploadFile'),                                
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    75
            url(r'^import/$', self.admin_site.admin_view(self.import_file), name="ldt_content_import_file")
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    76
        )
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    77
        return content_urls + urls
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    78
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    79
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    80
admin.site.register(Content, ContentAdmin)
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    81
admin.site.register(Author)