Increase the datepicker input width

Increase the datepicker box input width to fit all sorts of date.

Change-Id: I4f5b379c6dc92830cb35044f5138ea3483ea03d7
Closes-bug: #1298209
Refer local_settings in doc to customize settings

There are couple of places in the docs where it isn't explicitly
mentioned whether to modify settings.py or local_settings.py to
customize settings (this might not be obvious to people who are new
to Horizon and Django).

The changes include:
- In the `Customizing Horizon` guide, under the section 'Modifying
  Existing Dashboards and Panels', explicitly mention local_settings.py
  file to be modified to update ``HORIZON_CONFIG`` setting
- In the QuickStart guide, under the `Setup` section, add a note which
  mentions that to customize any settings use the local_settings.py file
- In the 2013 Havana release notes, under section `Upgrade Information'
  for 'Allowed Hosts', specify only local_settings.py file to add the
  new 'ALLOWED_HOSTS' setting (instead of settings.py or local_settings.py)

Change-Id: I38314cadd8a5a61d1edea26c6cd0d34e713fd66c
Closes-Bug: 1301484
Fix start date should after end date in calendar

Start date should after end date in calendar

Change-Id: I17a7679875716d9e39d29dc70d8bf0f9f2234d58
Closes-bug:#1309339
Allow static files to be exposed for any plugin

Change the parsing of plugin configuration files to allow
a new Django application to be added. This enables the static file
finder to find the plugin's static files when they are referenced.
Previously only plugins that defined a new dashboard could do this.

Change-Id: I69bd8f24fa0855174a05203eabe7c932246dda21
Closes-Bug: #1309183
Use escapejs filter on JavaScript strings

The escapejs filter will correctly escape single quotes from JavaScript
strings which may otherwise trigger syntax errors. In this case, the
issue was visible using the French translation.

Also removed a trailing paranthesis coming out of nowhere.

Change-Id: I25001815e17be5afa8eb28cc28c5423e3dcd973c
Closes-Bug: #1311047
Move `Forbidden` exceptions to `RECOVERABLE` group

Previously the Forbidden exceptions raised by clients were classified
as UNAUTHORIZED. This classification is not entirely correct, as
the UNAUTHORIZED group of exceptions implies that the user should be
logged out and forced to log in again. This, however, is not the case
with Forbidden exceptions. Thus, it is more appropriate to place the
Forbidden exceptions into the RECOVERABLE group.

Change-Id: I7e52ed72d66e9d0496bc07036e48c968e7a66c2e
Closes-bug: #1299126
Avoid attr error on database backup page

For some reason (and I genuinely do not have a clue why) some
database-backups don't appear to have an instance attribute. This causes
a problem when loading the table data, as the db_name helper-function
raises an AttributeError.

It appears that we're prepared for obj.instance.name to not exist, but
if obj.instance doesn't exist, then we raise the attribute error.

The solution is to return the obj.instance_id in both cases.

Change-Id: I77a30e4aeb97744aa14151eca0b4c011476fb08d
Closes-Bug: 1312235
Changes in assert message and select dropdown

Three small changes in pageobject.py:

1. Updating the assert message in the page verification method
(is_the_current_page) to go along with the page title partial matching
way we decided on (reminder: the _page_title field only stores the
significant part of the page's title, due to the fact that the site
branding is configurable).

2. select_dropdown and select_dropdown_by_value now receivs the
webelement itself as an attribute, as oppose to an locator, needed to
be located again (by find_element). These methods aren't yet in
use, but definitely will be ,in patches I'm currently working on.

3. fill_field_by_locator was erased since it is not needed.
fill_field_element method receives the web element itself instead
of passing a locator (which is a private field of it's relevant object)
to fill_field_by_locator, finding it and then calling fill_field_element.
This way, fill_field_element is now used directly.

https://wiki.openstack.org/wiki/Horizon/Testing/UI

Partially implements blueprint: selenium-integration-testing

Change-Id: I12ade631069244876f0b4357c21d312255629437
Use floats instead of integer in memory calculation of admin dashboard

In the case that hypervisors have large amounts of memory, you'll find that
the dashboard reports improper memory usage when in the TB and PB range.
For example, 1.95 TB as an integer equals 1 so we convert to float instead.

Fixes bug: 1313009

Change-Id: Ie107986fa3ed9aad5c68c34353cdfc5943788069
Preventing __builtins__ from being in HORIZON_CONFIG

When we use the 'enabled' mechanism to add panels,
__builtins__ is also getting added to HORIZON_CONFIG.
Since that is undesirable, it is now prevented
by stripping it out before it gets added.

Change-Id: I3dc772210de8da9810795368df9bf1123388624d
Closes-Bug:  bug 1312180
Fix the dot overlaps with the table border in Availability Zones table

Add space between the dot and table border in Availability
Zones table.

Change-Id: Ic4107c446b015eb72a54496a7a7ef6e2b0a53554
Closes-bug:#1309381
Patch Django 1.4 on Python 2.7.4 or greater

This fix provides a patch for Django 1.4 to get rid of
the issues with django.test.assertContains in the py27dj14
test environment.

Change-Id: I4c7a225ef1095999f7c109e77c95e1a6fe04db8c
Closes-Bug: #1273943
fixed typos found by topy

Topy is available at https://github.com/intgr/topy.

Change-Id: Id02253da7b751a0787eb89f2c61f9421726326f9
Updated from global requirements

Change-Id: If8e08b4fb3fa32c9e9b6945a6833c97f4b499f1f
Fix unicode error when assertMessageCount() fails

When assertMessageCount() fails, we display the list of messages that
were included in the response. However because the messages are lazily
translated by default, this would fail and show the following error
instead:

 TypeError: sequence item 0: expected string, __proxy__ found

Change-Id: I1d2ed97b66428e0ee1aac783c8370ab3ea665b29
Closes-Bug: #1315031
Fix fake_init_exception() to better handle Neutron exceptions

Neutron often declares exceptions by overriding the message attribute
and possibly adding additional information later, like a 'reason' for
the failure, rather than passing the code and message around as
arguments.  We should handle this appropriately and display the correct
message, instead of failing with "TypeError: fake_init_exception()
takes exactly 3 arguments (1 given)"

Change-Id: Ib838704cb9ca968ddfc6e3bfed3af7d0ea08f384
Closes-Bug: #1315035
Merge "Fix unicode error when assertMessageCount() fails"
Merge "Avoid attr error on database backup page"
add missing references to policy files

In local_settings.py.example, there were references
to policy files missing. When changing policy file
location, those are required.

Change-Id: I60e2271bb9d323f484524a448d28e40a5ace69b3
Closes-Bug: #1315739
To allow keypair name could contain spaces

To allow the keypair name could contain
letters, numbers, underscores, spaces
and hyphens.

Changes:
Define a new key pair name regex
change key pair Name from CharField to RegexField
modify the test_import_keypair_invalid_key

Closes-Bug:#1288583
Change-Id: I0a20712759359d5cba052f701c51081eee3ca002