Some method of skin selection required (difficult to customize)

Bug #80191 reported by Brian Sutherland on 2006-10-02
14
Affects Status Importance Assigned to Milestone
SchoolTool
Medium
Ignas Mikalajūnas

Bug Description

This issue comes up because cando creates it's own schooltool skin. Since the
skin in schooltool is applied using an event subscriber, there seems to be no
"correct" way of overriding it.

I was just burned by this, so decided to put it here.

On Sat, Sep 30, 2006 at 11:35:39PM -0700, Paul Carduner wrote:
> On 9/30/06, Brian Sutherland <email address hidden> wrote:
>
> > > 3) it is not running the CanDo06 skin (with the menus across the top, not down
> > > the lefthand side); this skin is critical for usability.
> >
> > Looks like this is not the package's fault. It appears that cando.skin,
> > schooltool.app.browser and schooltool.devmode all subscribe to
> > zope.app.publication.interfaces.IBeforeTraverseEvent and change the
> > skin.
> >
> > That makes whatever skin you actually see at the end of the day a total
> > lottery as there are three things fighting to change it.
>
> We usually comment out a few lines in
> schooltool/devmode/overrides.zcml to get rid of that subscriber. It's
> not exactly a lottery because it will call subscribers in the same
> order every time based on which configuration file gets parsed first.

That definitely sounds _very_ fragile. I don't think that the order in
which the subscribers are called (or configuration is parsed) is defined
in the interface.

> Anyways, I've asked Eldar to comment out the subscriber in the
> cando-2006-Releases branch of schooltool.

yeah, that'll work. Another idea might be to monkey patch the schooltool
subscribers from within the cando subscriber, at least that'll save both you and
others from commenting out text.

> In any case, a feature
> schooltool will absolutely need in the future is the ability to manage
> all skins in a centralized location.

+1

> Even in a text based
> configuration file would be manageable (doesn't need to be a fancy web
> frontend).

It just doesn't sound right to put this kind of thing in the
configuration file. My guess is of a simple drop down box of available
skins which the manager can select.

Changed in schooltool:
status: Unconfirmed → Confirmed
Changed in schooltool:
assignee: nobody → ignas

It got fixed some time ago now. Nowadays skins are specified in instance configure.zcml as default browser skin.

It was also fixed in CanDo, see setup.py:
    [schooltool.instance_type]
    cando2007 = cando.cando2007

And in cando/cando2007/configure.zcml:

  <browser:defaultSkin name="NewCanDo" />

Changed in schooltool:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers