# -*- coding: UTF-8 -*-
## Copyright 2012-2013 Luc Saffre
## This file is part of the Lino project.
## Lino is free software; you can redistribute it and/or modify 
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 3 of the License, or
## (at your option) any later version.
## Lino is distributed in the hope that it will be useful, 
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with Lino; if not, see <http://www.gnu.org/licenses/>.

"""
Lino-Presto is an application for managing the work of Rumma & Ko OÜ.

It is a seamless combination of the following general functionalities:

- Accounting (general ledger, sales, purchases, VAT declarations, bank journals, ...)
- Project management, issue tracking, generating service reports and invoices for services.
- Subscription management (generating regular invoices based 
  to subscription contracts)
- Content management, blogs, newsletters and classical web pages

Lino-Presto is not yet usable. 
When one day it will be ready, we plan it to be reusable by 
other service providers such as 
software developers, tax consultants, accountants,...

"Presto" means "quick" in Italian, and in French it reminds "prestations de service".

"""

from os.path import join, abspath, dirname

from lino.apps.std.settings import *
#~ from lino.apps.presto import __version__, __url__, __name__

class Lino(Lino):
  
    #~ title = __name__
    short_name = "Lino Presto"
    version = "0.1"
    url = "http://www.lino-framework.org/autodoc/lino.apps.presto"
    #~ description = "a Lino application for Belgian Public Welfare Centres"
    author = 'Luc Saffre'
    author_email = 'luc.saffre@gmail.com'
    
    #~ demo_fixtures = 'std few_countries few_cities few_languages props demo demo2 history'.split()
    demo_fixtures = 'std all_countries be few_cities all_languages props democfg demo demo2 history local'.split()
    
    #~ languages = ['en']
    #~ languages = 'de fr et en'.split()
    
    project_model = 'tickets.Project'
    user_model = 'users.User'
    
    #~ remote_user_header = "REMOTE_USER"
    
    override_modlib_models = [
      'contacts.Person','contacts.Company',
      'households.Household']
    
    #~ def get_app_source_file(self): return __file__
      
    #~ def get_application_info(self):
        #~ return (__name__,__version__,__url__)
      
    def get_main_action(self,user):
        return self.modules.lino.Home.default_action
        
    #~ def setup_quicklinks(self,ui,user,tb):
        #~ tb.add_action(self.modules.contacts.Persons.detail_action)
        
    #~ def get_partner_account(self,voucher):
        #~ tt = voucher.get_trade_type()
        #~ if tt.name == 'sales':
            #~ return '400000'
        #~ elif tt.name == 'purchases':
            #~ return '440000'
            
    #~ def get_product_base_account(self,tt,product):
        #~ if tt.name == 'sales':
            #~ return '704000'
        #~ elif tt.name == 'purchases':
            #~ return '604000'
            
    #~ def get_vat_account(self,tt,vc,vr):
        #~ return '472100'
        
        
    def setup_choicelists(self):
        """
        Defines application-specific default user profiles.
        Local site administrators can override this in their :xfile:.
        """
        from lino import dd
        from django.utils.translation import ugettext_lazy as _
        dd.UserProfiles.reset('* office')
        add = dd.UserProfiles.add_item
        add('000', _("Anonymous"),       '_ _', 'anonymous',
            readonly=True,authenticated=False)
        add('100', _("User"),            'U U', 'user')
        add('900', _("Administrator"),   'A A', 'admin')
        
            
    def get_installed_apps(self):
        for a in super(Lino,self).get_installed_apps():
            yield a
        yield 'django.contrib.contenttypes'
        yield 'lino.modlib.users'
        yield 'lino.modlib.countries'
        yield 'lino.modlib.properties'
        yield 'lino.modlib.contacts'
        yield 'lino.modlib.households'
        yield 'lino.modlib.products'
        yield 'lino.modlib.accounts'
        yield 'lino.modlib.ledger'
        yield 'lino.modlib.vat'
        #~ 'lino.modlib.journals',
        yield 'lino.modlib.sales'
        #~ 'lino.modlib.projects',
        yield 'lino.modlib.blogs'
        yield 'lino.modlib.tickets'
        #~ 'lino.modlib.links',
        yield 'lino.modlib.uploads'
        #~ 'lino.modlib.thirds',
        yield 'lino.modlib.cal'
        yield 'lino.modlib.outbox'
        #~ yield 'lino.modlib.postings'
        #~ yield 'lino.modlib.pages'
        yield 'lino.apps.presto'
      
