예제 #1
0
파일: middleware.py 프로젝트: OKTago/Bore
 def process_request(self, request):
     if Reload.required():
         Reload.unschedule()
         metaman.build_classes()
         # NOTE: works with apache and wsgi in daemon mode only
         #       http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode
         
         # TODO: find a workaround to reload django development server
         server = request.META.get('wsgi.file_wrapper', None)
         if server is not None and server.__module__ == 'django.core.servers.basehttp':
             print "\n"
             print "You must restart the development server for changes to take effect"
             print "\n"
         else :
             # Commented here. This approach will restart only current process
             # becouse other daemons will have Reload.required() = False
             # Touching the WSGI_FILE should restart all daemons instead. (At least I
             # hope :) Need testing)
             #import signal, os
             #os.kill(os.getpid(), signal.SIGINT)
             import os
             from settings import WSGI_FILE
             # simulating touch (should restart all daemons processes)
             os.utime(WSGI_FILE, None)
     
     return
예제 #2
0
    def process_request(self, request):
        some_class_builded =  metaman.build_classes()
        original_urlconf = getattr(request, 'urlconf', settings.ROOT_URLCONF)
        if some_class_builded or self.first_time:
            self.first_time = False

            metaurls = patterns('', 
#                (r'^$', 'meta.views.index'),
#                # objects direct access. TODO: Disable in future?
                # NOTE: removing following line cause some urls to not
                #       work properly
                (r'^', include(metaman.urls)),
#                (r'^meta/', include(metaman.urls)),
            )
            meta.urls.urlpatterns = metaurls
            if 'django.contrib.admin' in settings.INSTALLED_APPS:
                # force admin app to rebuild its urls
                meta.urls.urlpatterns += patterns('',
                    (r'^admin/', include(admin.site.urls)),
                )
            # group urls
        
            meta.urls.urlpatterns += patterns('',
                ('', include(original_urlconf)),
            )

            # set group home url
#            meta.urls.urlpatterns += set_home_url('meta.views.index', '$')
            meta.urls.urlpatterns += attach_urls(include(metaman.urls))

            resolver = get_resolver('meta.urls')
            resolver._populate()

        request.urlconf = 'meta.urls'
        return 
예제 #3
0
파일: models.py 프로젝트: OKTago/Bore
    
    def __unicode__(self):
        return self.field.metaType.name + " > " + self.field.name + " > " + self.name

    class Meta:
        verbose_name_plural = "Properties"

class Relation(models.Model):
    content_type_origin = models.ForeignKey(ContentType, related_name="rel_origin")
    object_id_origin = models.PositiveIntegerField()
    content_object_origin = generic.GenericForeignKey(ct_field='content_type_origin', fk_field='object_id_origin')

 #   content_type_destination = models.ForeignKey(MetaType, related_name="rel_destination")
    content_type_destination = models.ForeignKey(ContentType, related_name="rel_destination")
    object_id_destination = models.PositiveIntegerField()
    content_object_destination = generic.GenericForeignKey(ct_field='content_type_destination', fk_field='object_id_detination')

class BaseType(models.Model):
    class Meta:
        abstract = True
        app_label = "objects"


try:
    metaman.build_classes()
except DatabaseError:
    # this should only happen on first syncdb
    # when MetaMan table doesn't still exists
    pass