series.cgi
author terom
Thu, 08 Nov 2007 17:28:01 +0000
changeset 3 9637b8f24005
parent 1 740133ab6353
child 4 d46ab092d2b2
permissions -rwxr-xr-x
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     1
#!/usr/bin/env python2.4
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
     2
import shelve
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     3
import cgi
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     4
import Cookie
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     5
import os, os.path
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     6
#import pprint
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     7
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     8
import degal
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     9
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    10
#
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    11
# load request params
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    12
#
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    13
vars = cgi.FieldStorage()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    14
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    15
# these are interpeted different ways, hence the generic naming
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    16
arg1 = vars["keys"].value
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    17
if 'index' in vars :
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    18
    arg2 = vars["index"].value
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    19
else :
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    20
    arg2 = None
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    21
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    22
# the cookie with the user's current series
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    23
cookie = Cookie.SimpleCookie(os.environ.get('HTTP_COOKIE', None))
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    24
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    25
# a special action?
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    26
if arg1 and arg1 in ('add', 'del', 'clear', 'view') or arg2 == 'load' :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    27
    # load the keys from the cookie
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    28
    if 'series' in cookie :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    29
        keys = cookie["series"].value.split()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    30
    else :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    31
        keys = []
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    32
    
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    33
    if arg2 == 'load' :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    34
        # set the keys in the user's cookie to those in the URL
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    35
        keys = arg1.split()
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    36
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    37
    elif arg1 == 'add' and arg2 not in keys :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    38
        # add a code to the list of keys
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    39
        keys.append(arg2)
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    40
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    41
    elif arg1 == 'del' and arg2 in keys :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    42
        # remove a key from the list of keys
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    43
        keys.remove(arg2)
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    44
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    45
    elif arg1 == 'clear' :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    46
        # clear out the set of keys
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    47
        keys = []
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    48
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    49
    elif arg1 == 'view' :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    50
        # just view them
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    51
        pass
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    52
   
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    53
    # set the series cookie value
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    54
    cookie['series'] = ' '.join(keys)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    55
    cookie['series']['path'] = '/'
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    56
    
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    57
    # if we have keys, redirect to them, otherwise, back to index we go
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    58
    if keys :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    59
        redirect_to = "../%s/" % ('+'.join(keys))
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    60
    else :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    61
        redirect_to = "../.."
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    62
    
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    63
    # do the redirect
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    64
    print "Status: 302"
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    65
    print "Location: %s" % redirect_to
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    66
    print cookie
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    67
    print
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    68
    print "Redirect..."
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    69
else :
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    70
    # we're just viewing
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    71
    keys = arg1.split()
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    72
    
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    73
    # is this "My Series"?
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    74
    my_series = 'series' in cookie and cookie['series'].value.split() == keys
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    75
        
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    76
    if arg2 :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    77
        index = int(arg2)
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    78
    else :
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    79
        index = None
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    80
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    81
    # load DB
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    82
    db = shelve.open('shorturls2', 'r')
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    83
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    84
    # get the Image objects
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    85
    photos = []
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    86
    
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    87
    #
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    88
    # Start ugly code-misreuse
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    89
    #
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    90
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    91
    # monkey-patch the templates
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    92
    rendered_templates = []
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    93
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    94
    def _myRenderTo (self, path, **vars) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    95
        rendered_templates.append(self.render(**vars))
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    96
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    97
    # lalalalala... ooh, look;
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
    98
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    99
    degal.Template.renderTo = _myRenderTo
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   100
    #
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   101
    #         vvvvvvvvvvvvvvvvvvvv
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   102
    #         vvvvvvvvvvvvvvvvvvvv
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   103
    #
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   104
    #    >>>> SHINY PINK ELEPHANT! <<<<
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   105
    #
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   106
    #         ^^^^^^^^^^^^^^^^^^^^
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   107
    #         ^^^^^^^^^^^^^^^^^^^^
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   108
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   109
    # our own version of Folder
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   110
    class Series (degal.Folder) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   111
        def __init__ (self) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   112
            super(Series, self).__init__()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   113
            
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   114
            self.alive = True
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   115
            self.filtered = False
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   116
            self.subdirs = {}
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   117
            self.images = {}
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   118
            self.sorted_images = []
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   119
            self.title = "Series"
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   120
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   121
            if my_series :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   122
                self.descr = '<a href="../clear/">Clear your series</a>'
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   123
            else :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   124
                self.descr = '<a href="load">Load as your series</a>'
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   125
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   126
            self.shorturl_code = ''
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   127
        
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   128
        def breadcrumb (self) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   129
            return [('../..', 'Gallery'), ('.', 'Series')]
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   130
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   131
        def inRoot (self, *fnames) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   132
            return os.path.join('../..', *fnames)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   133
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   134
    class Image (degal.Image) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   135
        def __init__ (self, series, key, i) :
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   136
            type, self.dir_name, self.image_name = db[key]
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   137
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   138
            super(Image, self).__init__(series, self.image_name)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   139
            
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   140
            self.path = self._path()
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   141
            self.shorturl_code = key
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   142
            self.html_path = self.html_name = str(i + 1)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   143
            self.title = 'Image %d' % (i + 1, )
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   144
            self.descr = '<span style="font-size: x-small">Standalone image: <a href="%s.html">%s</a></span>' % (self._path(), self._path().lstrip('./'))
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   145
            self.img_size = (-1, -1)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   146
            self.filesize = 0
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   147
            self.timestamp = 0
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   148
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   149
            if my_series :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   150
                self.series_act = "del"
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   151
                self.series_verb = "Remove from"
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   152
            else :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   153
                self.series_act = self.series_verb = ""
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   154
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   155
        def breadcrumb (self) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   156
            return [('../..', 'Gallery'), ('.', 'Series'), (self.html_name, self.title)]
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   157
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   158
        def _path (self, blaa='') :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   159
            return os.path.join('../..', self.dir_name, blaa, self.image_name)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   160
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   161
        def thumbImgTag (self) :
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   162
            return degal.link(self.html_name, "<img src='%s' alt='%s' title='%s'>" % (self._path(degal.THUMB_DIR), '', self.title))
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   163
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   164
        def previewImgTag (self) :
3
9637b8f24005 ...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents: 1
diff changeset
   165
            return degal.link(self._path(), "<img src='%s' alt='%s' title='%s'>" % (self._path(degal.PREVIEW_DIR), '', self.title))
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   166
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   167
    series = Series()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   168
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   169
    try :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   170
        prev = None
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   171
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   172
        for i, key in enumerate(keys) :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   173
            img = Image(series, key, i)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   174
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   175
            if prev :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   176
                prev.next = img
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   177
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   178
            img.prev = prev
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   179
            prev = img
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   180
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   181
            series.sorted_images.append(img)
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   182
    finally :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   183
        db.close()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   184
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   185
    if index :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   186
        img = series.sorted_images[index - 1]
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   187
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   188
        img.render()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   189
    else :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   190
        series.render()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   191
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   192
    print "Content-Type: text/html"
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   193
    print
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   194
    print rendered_templates[0]
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
   195