degal/gallery.py
author Tero Marttila <terom@fixme.fi>
Thu, 11 Jun 2009 21:26:05 +0300
branchthreaded-tasks
changeset 89 4b254a90d6d0
parent 82 c21d9145aabc
child 112 e990b7a54d40
permissions -rw-r--r--
add task_threads config setting
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
        
82
c21d9145aabc fix Gallery.stylesheet to actually copy it into place
Tero Marttila <terom@fixme.fi>
parents: 77
diff changeset
    43
        if not stylesheet.exists() :
64
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
77
2a53c5ade434 misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
    49
    @lazy_load
2a53c5ade434 misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
    50
    def version (self) :
2a53c5ade434 misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
    51
        """
2a53c5ade434 misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
    52
            Return version string
2a53c5ade434 misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
    53
        """
2a53c5ade434 misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
    54
2a53c5ade434 misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents: 73
diff changeset
    55
        return "???"