Skip to main content

Layout code related to Armstrong

Project description

Provides layout related code for use in Armstrong and Django projects.

arm_layout provides you with tools to help streamline displaying content from within your application.

Usage

To load the template tags, add the following line (generally at the top of your template):

{% load layout_helpers %}

Once you have loaded the layout_helpers, you can use the render_model template tag to display a given model like this:

{% render_model some_model "full_page" %}

some_model is a variable in your template that is a model instance and the string "full_page" is the name of your “layout”. render_model looks for a template named layout/<app_label>/<model>/<layout>.html to determine what to use to display your model instance.

render_model goes one step further, however. It is smart enough to walk through the inheritance of the model to determine if there are any other models that have the layout that can be used. For example, if some_model was an instance of armstrong.apps.articles.models.Article which inherits from armstrong.apps.content.models.Content, render_model looks for the following templates, in this order:

["layout/articles/article/full_page.html",
 "layout/content/content/full_page.html", ]

You have access to the entire template context inside the full_page.html template. You also have a new variable called object which represents the model instance that you provided to render_model. That variable is only available inside the layout template and temporarily overrides any context variable called object. Once render_model is finished, it restores the original context.

Installation & Configuration

You can install the latest release of armstrong.core.arm_layout using pip:

pip install armstrong.core.arm_layout

Make sure to add armstrong.core.arm_layout to your INSTALLED_APPS. You can add this however you like. This works as a copy-and-paste solution:

INSTALLED_APPS += ["armstrong.core.arm_layout", ]

Contributing

  • Create something awesome – make the code better, add some functionality, whatever (this is the hardest part).

  • Fork it

  • Create a topic branch to house your changes

  • Get all of your commits in the new topic branch

  • Submit a pull request

State of Project

Armstrong is an open-source news platform that is freely available to any organization. It is the result of a collaboration between the Texas Tribune and Bay Citizen, and a grant from the John S. and James L. Knight Foundation.

To follow development, be sure to join the Google Group.

armstrong.core.arm_layouts is part of the Armstrong project. You’re probably looking for that.

License

Copyright 2011-2012 Bay Citizen and Texas Tribune

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

armstrong.core.arm_layout-1.1.1.tar.gz (8.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page