Re: Pluggable application template customization

2009-01-09 Thread Olivier Guilyardi

Olivier Guilyardi wrote:
> Malcolm Tredinnick wrote:
>> On Fri, 2009-01-09 at 14:00 +0100, Olivier Guilyardi wrote:
>>>
>>> How can I add support for this optional templates/telemeta directory,
>>> automatically, whenever one has installed telemeta ?

>> The telemeta source would need to support this directly, by passing a
>> list of template names to render_to_response() (not just a single
>> template name). Have a look at the usage of render_to_response() in
>> django/contrib/admin/options.py, for example.
>>
>> Alternatively, it could use select_template() as documented in [1].
>> Particularly, see the "Tip" in that piece of documentation. That
>> describes the method used.
>>
> Regarding render_to_response() with multiple templates or select_template(), 
> by
> reading admin's options.py it looks to me like this shouldn't be necessary. By
> using render_to_response('telemeta/mediaitem_detail.html') the template loader
> should automatically look for
> my_project/templates/telemeta/mediaitem_detail.html and then for
> telemeta_app/templates/telemeta/mediaitem_detail.html. Am I wrong ?

I forgot to configure TEMPLATE_DIRS in my_project. It works ok now. Sorry for
the noise.

Thanks

-- 
  Olivier Guilyardi / Samalyse

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---



Re: Pluggable application template customization

2009-01-09 Thread Olivier Guilyardi

Malcolm Tredinnick wrote:
> On Fri, 2009-01-09 at 14:00 +0100, Olivier Guilyardi wrote:
>> Hi,
>>
>> We have developed Telemeta, a "pluggable" Django application (to be added to
>> INSTALLED_APPS). It works great. We now need to support per-project templates
>> customization as one can do for the admin.
>>
>> Telemeta provides a bunch of default templates. Once one has created a new
>> django project, and installed telemeta, there is a need to customize the
>> templates for this particular project.
>>
>> So, as it's done for the admin in my_project/templates/admin, I would like to
>> make it possible to create a my_project/templates/telemeta directory and put
>> customized templates in there, overloading default templates.
>>
>> How can I add support for this optional templates/telemeta directory,
>> automatically, whenever one has installed telemeta ?
> 
> The telemeta source would need to support this directly, by passing a
> list of template names to render_to_response() (not just a single
> template name). Have a look at the usage of render_to_response() in
> django/contrib/admin/options.py, for example.
> 
> Alternatively, it could use select_template() as documented in [1].
> Particularly, see the "Tip" in that piece of documentation. That
> describes the method used.
> 
> [1]
> http://docs.djangoproject.com/en/dev/ref/templates/api/#the-python-api

Thanks for this pointer. But I actually didn't read, or forgot, the very next
sentence after this tip: "It's possible -- and preferable -- to organize
templates in subdirectories of the template directory. The convention is to make
a subdirectory for each Django app, with subdirectories within those
subdirectories as needed.".

This is exactly how it's done for the admin, the templates reside in
django/contrib/admin/templates/admin and not in django/contrib/admin/templates.

So I've moved all of telemeta templates from telemeta_app/templates into
telemeta_app/templates/telemeta, which looks cleaner to me, to avoid conflict
with templates from the project or other apps.

But when I add a customized template into my_project/templates/telemeta, the
customizations are invisible. I must add that the default template I'm trying to
overload is itself extending another template. So maybe that this problem
relates to the extend functionality ? For instance, in the admin, this seems
addressed in:
http://code.djangoproject.com/browser/django/tags/releases/1.0.2/django/contrib/admin/views/template.py#L56

Should I replace the "extends" tag as well ?

You can read the telemeta template that I'm trying to extend here:
http://telemeta.org/browser/trunk/telemeta/templates/telemeta/mediaitem_detail.html?rev=335

Regarding render_to_response() with multiple templates or select_template(), by
reading admin's options.py it looks to me like this shouldn't be necessary. By
using render_to_response('telemeta/mediaitem_detail.html') the template loader
should automatically look for
my_project/templates/telemeta/mediaitem_detail.html and then for
telemeta_app/templates/telemeta/mediaitem_detail.html. Am I wrong ?

> Since the Telemeta website seems to be crashing at the moment, I can't
> see if they're set up to support that or not, but a quick search through
> the source should reveal the details.

This is only a random crash, which we're in the process of fixing. Please click
reload, it should work ok.

-- 
  Olivier Guilyardi / Samalyse

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---



Re: Pluggable application template customization

2009-01-09 Thread Malcolm Tredinnick

On Fri, 2009-01-09 at 14:00 +0100, Olivier Guilyardi wrote:
> Hi,
> 
> We have developed Telemeta, a "pluggable" Django application (to be added to
> INSTALLED_APPS). It works great. We now need to support per-project templates
> customization as one can do for the admin.
> 
> Telemeta provides a bunch of default templates. Once one has created a new
> django project, and installed telemeta, there is a need to customize the
> templates for this particular project.
> 
> So, as it's done for the admin in my_project/templates/admin, I would like to
> make it possible to create a my_project/templates/telemeta directory and put
> customized templates in there, overloading default templates.
> 
> How can I add support for this optional templates/telemeta directory,
> automatically, whenever one has installed telemeta ?

The telemeta source would need to support this directly, by passing a
list of template names to render_to_response() (not just a single
template name). Have a look at the usage of render_to_response() in
django/contrib/admin/options.py, for example.

Alternatively, it could use select_template() as documented in [1].
Particularly, see the "Tip" in that piece of documentation. That
describes the method used.

[1]
http://docs.djangoproject.com/en/dev/ref/templates/api/#the-python-api

Since the Telemeta website seems to be crashing at the moment, I can't
see if they're set up to support that or not, but a quick search through
the source should reveal the details.

Regards,
Malcolm



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---



Pluggable application template customization

2009-01-09 Thread Olivier Guilyardi

Hi,

We have developed Telemeta, a "pluggable" Django application (to be added to
INSTALLED_APPS). It works great. We now need to support per-project templates
customization as one can do for the admin.

Telemeta provides a bunch of default templates. Once one has created a new
django project, and installed telemeta, there is a need to customize the
templates for this particular project.

So, as it's done for the admin in my_project/templates/admin, I would like to
make it possible to create a my_project/templates/telemeta directory and put
customized templates in there, overloading default templates.

How can I add support for this optional templates/telemeta directory,
automatically, whenever one has installed telemeta ?

Regards,

-- 
  Olivier Guilyardi / Samalyse

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---