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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 2Python 3

File details

Details for the file acp-calendar-1.6.0.tar.gz.

File metadata

  • Download URL: acp-calendar-1.6.0.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for acp-calendar-1.6.0.tar.gz
Algorithm Hash digest
SHA256 fbb702c724fec16e04eccab9b7fe95028f9249d1ef2f2a9f604b5c566720bd7d
MD5 fb89c8e7f206df16f02ace7411668ef7
BLAKE2b-256 7ab2b322db7c8c5aac9f6af27c85044d2f0c8c55e8bdd3e7dce0d64287dfeaef

See more details on using hashes here.

File details

Details for the file acp_calendar-1.6.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for acp_calendar-1.6.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f2aef6df697004301ec279e0ab93ada5b5801271a0f50e4bdddd390ed3161b2b
MD5 98a77c2bdbc986f4907f4176ad189f81
BLAKE2b-256 61f9c3acfec45837727af8ff918f594f8000f80248c2f16deea6cc83964a4ca9

See more details on using hashes here.

Supported by

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