I answer to myself hoping that it can be useful for others.

*Context :*

- Project with site multi-tenacy 
[http://mezzanine.jupo.org/docs/multi-tenancy.html]
- Django 1.6.7
- Mezzanine 3.1.10

*What :*

The default configuration of upload dir location for galleries* doesn't 
allow users to see their files* in media library once files are uploaded* 
when using a zip file*.

With Mezzanine in multi-tenancy context all uploaded images by user are 
saved somewhere in :
    [media_root location]/uploads/site-[number]/galleries/...

But for galleries when using a zip file the location is :
    [media_root location]/uploads/page-slug/...

The "page-slug" directory isn't in the "site-[number]" directory : it is 
what prevents users to see their files after upload.

*Solution :*
I 've monkey patched the var GALLERIES_UPLOAD_DIR of the 
mezzanine/galleries/models.py file by including those lines in my app used 
to theme mezzanine, theme/models.py :

def get_galleries_upload_dir():
    import os
    from mezzanine.conf import settings
    from mezzanine.conf import settings as mezz_settings
    from mezzanine.utils.importing import import_dotted_path
    from mezzanine.utils.sites import current_site_id

    GALLERIES_UPLOAD_DIR = "galleries"
    if settings.PACKAGE_NAME_FILEBROWSER in settings.INSTALLED_APPS:
        fb_settings = "%s.settings" % settings.PACKAGE_NAME_FILEBROWSER
        try:
            fb_dir_upload = import_dotted_path(fb_settings).DIRECTORY
            if getattr(mezz_settings, "MEDIA_LIBRARY_PER_SITE", False):
                GALLERIES_UPLOAD_DIR = os.path.join(
                    fb_dir_upload,
                    "site-%s" % current_site_id(),
                    "galleries")
        except ImportError:
            pass
    return GALLERIES_UPLOAD_DIR

from mezzanine.galleries import models as Galleries_models
Galleries_models.GALLERIES_UPLOAD_DIR = get_galleries_upload_dir()


*May be a bug found ? :*

My first try was to used the get_directory() function from 
filebrowser_safe, like this :

from filebrowser_safe.functions import get_directory
[...]
if settings.PACKAGE_NAME_FILEBROWSER in settings.INSTALLED_APPS:
    GALLERIES_UPLOAD_DIR = os.path.join(get_directory(), "galleries")
[...]



But this doesn't work when directories are not already created the first 
time the function is called. *An error is raised because 
default_storage.isdir() doesn't exist.*

I stop to investigate here, i was too far from my goal and I ended up with 
my solution as explained before.

Best regards

Le jeudi 27 novembre 2014 14:35:07 UTC+1, [email protected] a écrit :
>
> Hello to all Mezzanine users ;-)
>
> Another thing that's difficult to understand about directory structure for 
> upload files :
>
> Context : using mezzanine galleries in an multi-tenancy setup project
>
> When I upload a single image ( img1.jpg for instance ), the file goes here 
> :
>  [..]static/media/uploads/site-1/galleries/img1.jgp
>
> But when i upload a zip file containing several images, the files go here :
> [..]static/media/uploads/page_slug/all files from zip
>
> How can I setup Mezzanine this way :
> [..]static/media/uploads/site-1/galleries/page_slug/all files from zip
>
> best regards
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to