Changeset 12438 for trunk


Ignore:
Timestamp:
01/27/11 13:45:14 (13 years ago)
Author:
ramonb
Message:

sara_cmt/cluster/templatetags/ramonb_extras.py:

  • added tag getracks, works like: {% getracks 'Gina' as gina_racks %}
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sara_cmt/sara_cmt/cluster/templatetags/ramonb_extras.py

    r12434 r12438  
    157157
    158158from django.db.models import get_model
     159
     160@register.tag(name='getracks')
     161def do_getracks(parser, token):
     162
     163    try:
     164        tag, cluster, kw_as, name = token.split_contents()
     165    except ValueError:
     166        raise template.TemplateSyntaxError, '%r tag requires exactly 4 arguments' % tag
     167
     168    return getRacks( name, cluster )
     169
     170class getRacks(template.Node):
     171
     172    """
     173        Something weird
     174    """
     175
     176    def __init__(self, name, cluster):
     177
     178        self.name = name
     179        self.cluster = cluster.strip("'").strip('"').__str__()
     180        self.racks = [ ]
     181
     182    def render(self, context):
     183        attr='cluster__name'
     184        val =self.cluster
     185
     186        rack_names = [ ]
     187
     188        cluster_units = get_model('cluster', 'HardwareUnit').objects.filter( cluster__name=str(self.cluster) )
     189
     190        for u in cluster_units:
     191            if u.rack.label not in rack_names:
     192                rack_names.append( u.rack.label )
     193                self.racks.append( u.rack )
     194
     195        context[ self.name ] = self.racks
     196        return ''
    159197
    160198@register.tag(name='use')
Note: See TracChangeset for help on using the changeset viewer.