Changeset 268:c5db26a54ab8


Ignore:
Timestamp:
11/12/10 20:36:12 (2 years ago)
Author:
nicoechaniz <nico@…>
Branch:
default
Message:

return default view when a model's view has been renamed or deleted in code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cyclope/core/frontend/sites.py

    r267 r268  
    116116                obj = item.content_object 
    117117                view = self.get_view(obj.__class__, item.content_view) 
    118                 urlpatterns += patterns( 
    119                     '', url('^%s$' % item.url, view, {'slug': obj.slug})) 
     118                urlpatterns += patterns('', url('^%s$' % item.url, view, 
     119                                                  {'slug': obj.slug})) 
    120120            elif item.content_type is not None: 
    121121                mdl = item.content_type.model_class() 
    122122                view = self.get_view(mdl, item.content_view) 
    123                 urlpatterns += patterns( 
    124                     '', url('^%s$' % item.url, view)) 
     123                urlpatterns += patterns('', url('^%s$' % item.url, view)) 
     124                 
    125125            # this menu item has no content so we will only display the layout 
    126126            else: 
    127                 urlpatterns += patterns( 
    128                     '', url(r'^%s$' % item.url, self.no_content_layout_view)) 
     127                urlpatterns += patterns('', url(r'^%s$' % item.url, 
     128                                                  self.no_content_layout_view)) 
    129129        return urlpatterns 
    130130 
     
    136136 
    137137    def get_view(self, model, view_name): 
    138         return [ view for view in self._registry[model] 
    139                 if view.name == view_name ][0] 
     138        view_ocurrences = [ view for view in self._registry[model] 
     139                            if view.name == view_name ] 
     140        # if a view's name has changed this will be False 
     141        # we return the default view to avoid the site from breaking 
     142        if view_ocurrences: 
     143            return view_ocurrences[0] 
     144        else: 
     145            return [ view for view in self._registry[model] 
     146                     if view.is_default == True ][0] 
    140147 
    141148#### Site Views #### 
    142 # 
     149 
    143150    def index(self, request): 
    144151        """The root Cyclope URL view""" 
     
    186193 
    187194 
    188 ### JSON ## 
     195#### JSON #### 
    189196 
    190197    def collection_categories_json(self, request): 
     
    282289        return HttpResponse(json_data, mimetype='application/json') 
    283290 
    284 # 
    285291#### 
    286292 
Note: See TracChangeset for help on using the changeset viewer.