Skip to main content

Calendar and date management por the Panama Canal

Project description

============
ACP-Calendar
============

.. image:: https://badge.fury.io/py/acp-calendar.png
:target: https://badge.fury.io/py/acp-calendar

.. image:: https://api.travis-ci.org/luiscberrocal/django-acp-calendar.svg?branch=master
:target: https://travis-ci.org/luiscberrocal/django-acp-calendar

.. image:: https://coveralls.io/repos/github/luiscberrocal/django-acp-calendar/badge.svg?branch=master
:target: https://coveralls.io/github/luiscberrocal/django-acp-calendar?branch=master

.. image:: https://codeclimate.com/github/luiscberrocal/django-acp-calendar/badges/gpa.svg
:target: https://codeclimate.com/github/luiscberrocal/django-acp-calendar
:alt: Code Climate

.. image:: https://requires.io/github/luiscberrocal/django-acp-calendar/requirements.svg?branch=master
:target: https://requires.io/github/luiscberrocal/django-acp-calendar/requirements/?branch=master
:alt: Requirements Status


Holiday calendar and date management for the Panama Canal. Includes Panama Canal holidays from 2006 to 2017.

Documentation
=============

The full documentation is at http://django-acp-calendar.readthedocs.io/.

Requirements
=============


Requires

* Python 3.4, 3.5 or 3.6
* Django 1.8.15, 1.9.10, 1.10.7 or 1.11


Quickstart
==========

Install ACP-Calendar

.. code-block:: bash

$ pip install acp-calendar


Open your settings file and include acp_calendar and `rest_framework`_ to the THIRD_PARTY_APPS variable on your settings
file.


.. _rest_framework: http://www.django-rest-framework.org/

The settings file

.. code-block:: python

DJANGO_APPS = (
# Default Django apps:
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',

# Useful template tags:
# 'django.contrib.humanize',

# Admin
'django.contrib.admin',
)
THIRD_PARTY_APPS = (
'crispy_forms', # Form layouts
'allauth', # registration
'allauth.account', # registration
'allauth.socialaccount', # registration
'rest_framework',
'acp_calendar',
)

# Apps specific for this project go here.
LOCAL_APPS = (
'acp_calendar_project.users', # custom users app

# Your stuff: custom apps go here
)

# See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS


Add the acp_calendar.urls to your urls file.

.. code-block:: python

urlpatterns = [
url(r'^$', TemplateView.as_view(template_name='pages/home.html'), name='home'),
url(r'^about/$', TemplateView.as_view(template_name='pages/about.html'), name='about'),

# Django Admin, use {% url 'admin:index' %}
url(settings.ADMIN_URL, include(admin.site.urls)),

# User management
url(r'^users/', include('acp_calendar_project.users.urls', namespace='users')),
url(r'^calendar/', include('acp_calendar.urls', namespace='calendar')),
url(r'^accounts/', include('allauth.urls')),

# Your stuff: custom urls includes go here


] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)





Features
========

Holidays
++++++++

To get the working days for the Panama Canal between january 1st to january 31st 2016.

.. code-block:: python

In [ 3 ]: import datetime

In [ 4 ]: start_date = datetime.date(2016, 1,1)

In [ 5 ]: end_date = datetime.date(2016,1,31)

In [ 6 ]: working_days = ACPHoliday.get_working_days(start_date, end_date)

In [ 7 ]: print(working_days)
19

Fiscal Year
+++++++++++

.. code-block:: python

In [ 1 ]: import datetime

In [ 2 ]: from acp_calendar.models import FiscalYear

In [ 3 ]: start_date = datetime.date(2015, 10,1)

In [ 4 ]: fiscal_year = FiscalYear.create_from_date(start_date)

In [ 5 ]: print(fiscal_year)
FY16

In [ 6 ]: fiscal_year.start_date
Out[6]: datetime.date(2015, 10, 1)

In [ 7 ]: fiscal_year.end_date
Out[7]: datetime.date(2016, 9, 30)


Calculator
++++++++++

To access the calculator go to http://<your_host>:<your_port>/calendar/calculator/

.. image:: docs/images/calculator_01.png

To use the calculator your base.html must have:

* A javascript block at the end of the html
* jQuery (version 2.2.x)
* jQuery ui (version 1.12.x)



Virtual Environment
-------------------

Use virtualenv to manage a virtual environment.

In a Mac use the following command to create the virtual environment.

.. code-block:: bash

$ python3 /usr/local/lib/python3.4/site-packages/virtualenv.py --no-site-packages acp_calendar_env


Running Tests
-------------

Does the code actually work?

.. code-block:: bash

$ source acp_calendar_env/bin/activate
(acp_calendar_env) $ pip install -r requirements-test.txt
(acp_calendar_env) $ python runtests.py

Builds
------

We are using Travis for continuos integration https://travis-ci.org/luiscberrocal/django-acp-calendar/builds

For coverage we are using coveralls https://coveralls.io/github/luiscberrocal/django-acp-calendar

Run bumpversion

.. code-block:: bash

$ bumpversion minor


Instead of minor you could also use **major** o **patch** depending on the level of the release.

.. code-block:: bash

python setup.py sdist bdist_wheel

python setup.py register -r pypitest

python setup.py sdist upload -r pypitest



Check https://testpypi.python.org/pypi/acp-calendar/

.. code-block:: bash

python setup.py register -r pypi

python setup.py sdist upload -r pypi

Development
-----------

There is a project to use to develop and view the acp_calendar app it is at https://github.com/luiscberrocal/acp-calendar-dev-project


Credits
-------

Tools used in rendering this package:

* Cookiecutter_
* `cookiecutter-pypackage`_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage




History
-------

0.2.2 (2016-04-10)
++++++++++++++++++

* First release on PyPI.

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

acp-calendar-1.6.0.tar.gz (20.3 kB view hashes)

Uploaded Source

Built Distribution

acp_calendar-1.6.0-py2.py3-none-any.whl (28.1 kB view hashes)

Uploaded Python 2 Python 3

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