degal/gallery.py
author Tero Marttila <terom@fixme.fi>
Fri, 05 Jun 2009 23:06:06 +0300
changeset 73 8897352630a5
parent 64 4ebd563214d2
child 77 2a53c5ade434
permissions -rw-r--r--
misc. stuff in gallery.py utils.py
64
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    Top-level gallery state
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
import filesystem, folder, resources
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
from utils import lazy_load
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
class Gallery (filesystem.Root, folder.Folder) :
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
    """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
        A Gallery is a single place in the filesystem which acts as a Folder of Images, but had some additional stuff
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
    """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
    def __init__ (self, path, config) :
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
        """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
            Build a Gallery rooted at the given filesystem path, and using the given user configuration.
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
            XXX: replace path with config.gallery_path?
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
        """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
        super(Gallery, self).__init__(path, config)
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    @lazy_load
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
    def degal_dir (self) :
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
        """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
            The dir containing the degal configuration.
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
            It will be created if it does not exist.
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
        """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
73
8897352630a5 misc. stuff in gallery.py utils.py
Tero Marttila <terom@fixme.fi>
parents: 64
diff changeset
    31
        return self.subdir('.degal', create=True)
8897352630a5 misc. stuff in gallery.py utils.py
Tero Marttila <terom@fixme.fi>
parents: 64
diff changeset
    32
    
64
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
    @lazy_load
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
    def stylesheet (self) :
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
        """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
            The stylesheet file.
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
            It will be copied from internal resources if it does not exist.
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
        """
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
        stylesheet = self.degal_dir.subfile('style.css')
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
        
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
        if not stylesheet :
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
            # copy it from resources
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
            stylesheet.copy_from(resources.STATIC_DIR.subfile('style.css'))
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
        return stylesheet
4ebd563214d2 begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48