# Company specific data values

(TODO : Specify which one are mandatory)

### General

- OPEN_ON_SUNDAY = True

        Used to show Sunday on calendars (set SHIFT_EXCHANGE_DAYS_TO_HIDE = '' to show sunday shifts)

- EMAIL_DOMAIN = 'lesgrainsdesel.fr'

- MAG_NAME = ''

        Could be "Cleme" for example, at Cagette (Location are associated to shift template)

- OFFICE_NAME = ''

        Was used for La Cagette (shift template)

- MAX_BEGIN_HOUR = '19:00'

        Used to draw weeks planning

- COMPANY_NAME = 'lgds'

        Used for company spesific code

- COMPANY_NAME = 'Les Grains de Sel'

- COMPANY_LOGO = 'https://domaine.name/img/logo.png'


- ADMIN_IDS = [13]

        Used to show hidden things. for example, input barcode in shelf adding product (Odoo user id array)

- ADMINS = ['webmaster@coop.dom']


- TOOLS_SERVER = 'https://outils.lacagette-coop.fr'

        Used for file generation (scale or print purpose)

- BRINKS_MUST_IDENTIFY = True

        If True, visitor has to use its Odoo user to identify

- UNITE_UOM_ID = 1

        DB uom unit id (only use for shares invoice)


### Member subscription

- FORCE_HYPHEN_IN_SUBSCRIPTION_FIRSTNAME = False

- CONCAT_NAME_ORDER = 'LF'

- SUBSCRIPTION_ADD_SECOND_PHONE = True

- SUBSCRIPTION_ADD_STREET2 = True

- SUBSCRIPTION_ASK_FOR_SEX = True

- SUBSCRIPTION_INPUT_BARCODE = True

- SUBSCRIPTION_NAME_SEP = ', '

- COOP_BARCODE_RULE_ID = 11

- ASSOCIATE_BARCODE_RULE_ID = 12

- FUNDRAISING_CAT_ID = 1

- PARTS_PRICE_UNIT = 10.0

- PARTS_A_PRICE_UNIT = PARTS_PRICE_UNIT

- PARTS_A_PRODUCT_ID = 5

- PARTS_B_PRODUCT_ID = 6

- PARTS_C_PRODUCT_ID = 7

- CAP_APPELE_NON_VERSE_ACCOUNT_ID = 529

- CAP_APPELE_VERSE_ACCOUNT_ID = 8

- CAP_INVOICE_LINE_ACCOUNT_ID = 8

- CAP_JOURNAL_ID = 9

- CASH_PAYMENT_ID = 18

- CB_PAYMENT_ID = 15

- CHECK_PAYMENT_ID = 8

- VIREMENT_PAYMENT_ID = 16

- HELLO_ASSO_PAYMENT_ID = 29

- SUMUP_PAYMENT_ID = 30

- SUBSCRIPTION_PAYMENT_MEANINGS = [
                                  {'code': 'cash', 'title': 'Espèces','journal_id': CASH_PAYMENT_ID},
                                  {'code': 'ch', 'title': 'Chèque', 'journal_id': CHECK_PAYMENT_ID},
                                  {'code': 'cb', 'title': 'Carte bancaire', 'journal_id': CB_PAYMENT_ID},
                                  {'code': 'vir', 'title': 'Virement', 'journal_id': VIREMENT_PAYMENT_ID}]

        Used to generate payment meanings in subscription form

- MAX_CHQ_NB = 12

        Maximum accepted checks numbers

- INPUT_PHONE_PATTERN = "^(0\d{9})$"
        Regexp pattern which is used to validate values input in phone fields
        Default is "^((\+33(-| )\d{1})|\d{2})(\.| )\d{2}(\.| )\d{2}(\.| )\d{2}(\.| )\d{2}$"

- PHONE_PAIRS_SEPARATOR = "."
        Character which by used to separate every 2 phone figures (04.67.23.89.21 for example)
        Default is " "

- SHOW_FTOP_BUTTON = True (by default)

        If True, in shift_template calendar choice view, "Volant" button is included

- USE_STANDARD_SHIFT = True (by default)

        La Cagette use False to implement custom rules

- CAN_CREATE_BINOME = True (by default)

        If set to True, in new member creation form,  a member can be selected to be associated with.

- ASSOCIATE_MEMBER_SHIFT = ''

        Id number of the associate shift template

- PREPA_ODOO_URL = ''
        URL of the "prepa_odoo" page

### Scales and labels files generation

- DAV_PATH = '/data/dav/cagette'

        DAV_PATH is a directory managed by Apache2 dav module

- CATEG_FRUIT = 151

- CATEG_LEGUME = 152

- FR_CATEGS = [CATEG_FRUIT]

- FR_CATEGS = [CATEG_LEGUME]

- FIXED_BARCODE_PREFIX = '0491'

- FLV_CSV_NB = 4

        How many distinct file for scale input have to be generated

- VRAC_CATEGS = [166, 167, 174]

- SHELF_LABELS_ADD_FIELDS = ['category_print_id', 'categ_id', 'country_id', 'label_ids', 'uom_id']

        Fields add to generated text file

- EXPORT_POS_CAT_FOR_SCALES = True

        Exports POS categories data as a JSON file, and add a POS Category column in CSV file for scale database update

### Shop module

- SHOP_CAN_BUY = False

        If set to False, visitors can only see products (quantities and prices)

- SHOP_SLOT_SIZE = 30

        How many minutes for a slot

- DEFAULT_MAX_TIMESLOT_CARTS = 5

        How many carts can be produced by slot
        This value can be changed in shop admin page

- HOURS_FOR_VALIDATION_SHOP = 2

        How many hours are left for people to complete cart (for the choosen date)
        Once time has left, booked picking hour is canceled.
        Visitor has to choose a new picking date and hour

- MIN_DELAY_FOR_SLOT = 4

        How far has to be the closest picking date (in hours)
        For example, with 4 value, if it's 08:00 am, the picking date could not be before 12:00 am (even if a slot is free before)

- DISCOUNT_SHELFS_IDS = [74]

- EXCLUDE_SHOP_CATEGORIES = [108]

- FL_SHELFS = [16, 17, 18]

        Fruits et Légumes shelves (Odoo database ids)

- VRAC_SHELFS = [20, 38]


- PROMOTE_SHELFS_IDS = [68]


- CART_VALIDATION_BOTTOM_MSG = "Pour des raisons d'hygiène les commandes seront préparées dans des sacs en papier kraft qui vous seront facturées, 0,24€ pour les petits et 0,77€ pour les grands. Merci de votre compréhension"


- SHOP_CATEGORIES = {}

- SHOP_EXTRA_MENUS = ['shop/planning_livraison_pains.html', 'shop/combien_ca_pese.html']

- SHOP_HEADER_IMG = 'https://supercafoutch.fr/wp-content/uploads/2018/02/SC-logo-4-invert@1x.png'

- SHOP_LIMIT_PRODUCTS = ['relatively_available', 'no_shelf']

- SHOP_OPENING = {'mar.': [{'start': '10:30', 'end': '14:00'}, {'start': '15:30', 'end': '20:00'}],
                'mer.': [{'start': '10:30', 'end': '14:00'}, {'start': '15:30', 'end': '20:00'}],
                'jeu.': [{'start': '10:30', 'end': '14:00'}, {'start': '15:30', 'end': '20:00'}],
                'ven.': [{'start': '10:30', 'end': '14:00'}, {'start': '15:30', 'end': '20:00'}],
                'sam.': [{'start': '10:30', 'end': '14:00'}, {'start': '15:30', 'end': '20:00'}]
                }

- SHOP_OPENING_START_DATE = '2020-06-02'

- SHOP_SURVEY_LINK = 'https://docs.google.com/forms/d/e/1FAIpQLSczl0mMRwx3s9LbUSPYwwFTiiRa6agx7YkQM9cL41eiQnXNUw/viewform'

- SHOW_SUBSTITUTION_OPTION = False

- VALIDATION_ORDER_MAIL_TEMPLATE = 'shop/supercafoutch_validation_mail.html'



### Entrance module

- WELCOME_ENTRANCE_MSG = "Bienvenue dans ce super-marché"

        Message shown as H1 at screen top

- WELCOME_SUBTITLE_ENTRANCE_MSG = "Vous êtes venu aujourd'hui pour..."

        Text to introduce button texts (Here for shopping or for a shift)

- ENTRANCE_COME_FOR_SHOPING_MSG = "Hey coucou toi ! Cet été nous sommes plus de <strong>1000 acheteur·euses</strong> pour seulement  <strong>300 coopérateur·rice·s</strong> en service. <br />Tu fais tes courses à La Cagette cet été ?<br/> Inscris-toi sur ton espace membre !"

- ENTRANCE_FTOP_BUTTON_DISPLAY = False

        Hide the "I come as FTOP" button when set on False

- ENTRANCE_SHOPPING_BTN = "…faire <b>mes courses 🛒"

- ENTRANCE_SERVICE_BTN = "…faire <b>mon service 🤝"

- ENTRANCE_EXTRA_BUTTONS_DISPLAY = False (no button is shown above shift coop. list) (True if not set)

- ENTRANCE_EASY_SHIFT_VALIDATE = False (default value)

        When set to True allow coop to identify and have 1 point (only if FTOP)

- ENTRANCE_ADD_PT_EVENT_NAME = 'Add 1 point name throught easy validate' (default : 'Validation service comité'')

- ENTRANCE_MISSED_SHIFT_BEGIN_MSG (default :  "")

        This message is dispayed when time to register is last

- ENTRANCE_EASY_SHIFT_VALIDATE_MSG (default = 'Je valide mon service "Comité"')

        (makes sens if ENTRANCE_EASY_SHIFT_VALIDATE is True)

- ENTRANCE_WITH_LATE_MODE = True

        (If member is coming within the grace delay)

- ENTRANCE_VALIDATION_GRACE_DELAY = 60

        (if not set, 60 minutes is the default)

- ENTRANCE_VALIDATE_PRESENCE_MESSAGE = """
    <div class="explanations">
     Ta présence a bien été validée ! Merci de te diriger au fond du magasin pour le lancement du créneau !
    </div>
    Ton prochain service <span class="service_verb">est prévu</span> le <span class="next_shift"></span>
"""

        (La Cagette message, where no point data is displayed)

### Member space

- EM_URL = ''

        Url to redirect once member has validated its data (empty in simple use)

- WITH_WEBSITE_MENU = True

        If set to True, a "personnal data" menu is shown, permitting connected member to modify its data.

- SHIFTS_MOVING_ALLOWED = True

        If set to False, ABCD members cannot move their shifts using calendar

- FTOP_SHIFTS_VIEW_LIMIT = 2

        By default, no limit is set. Unit must be weeks

- CALENDAR_NO_MORE_LINK = True

        If True, in shifts calendar view (to choose one or exchange one)
        all shifts are shown (if False, a link to show more shifts is shown)

- CAL_INITIAL_VIEW = 'dayGridWeek'

        If not set, default view is 'dayGridMonth'

- SHIFT_EXCHANGE_DAYS_TO_HIDE = '0'

        By default, if this variable is not set, sunday is hidden
        To hide Sunday and Monday, set this to "0,1"
- SHIFT_COLOR_TOGGLE_NUM = 7

        If not set, shift class for rendering color is based on % (toggle limit = 50%)
        If set with a number, this number is used (toggle limit = this number, including it)

- SHIFT_INFO = """A la cagette, un service est une plage de trois heures un jour en particulier, par exemple : le mardi 25/09/2018 à 13h15.
<br />A l'inverse, un créneau est une plage de trois heures régulière, par exemple, tous les mardi de semaine A à 13h15."""

- PB_INSTRUCTIONS = """Si j'ai un problème, que je suis désinscrit, que je veux changer de créneaux ou quoi que ce soit, merci de vous rendre dans la section \"J'ai un problème\" sur le site web de <a href=\"https://lacagette-coop.fr/?MonEspaceMembre\">La Cagette</a>"""

- UNSUBSCRIBED_FORM_LINK = 'https://docs.google.com/forms/d/e/1FAIpQLScWcpls-ruYIp7HdrjRF1B1TyuzdqhvlUIcUWynbEujfj3dTg/viewform'
- UNSUBSCRIBED_MSG = 'Vous êtes désincrit·e, merci de remplir <a href="https://docs.google.com/forms/d/e/1FAIpQLSfPiC2PkSem9x_B5M7LKpoFNLDIz0k0V5I2W3Mra9AnqnQunw/viewform">ce formulaire</a> pour vous réinscrire sur un créneau.<br />Vous pouvez également contacter le Bureau des Membres en remplissant <a href="https://docs.google.com/forms/d/e/1FAIpQLSeZP0m5-EXPVJxEKJk6EjwSyZJtnbiGdYDuAeFI3ENsHAOikg/viewform">ce formulaire</a>'

        Message shown to people when they connect to the Member Space

-  MEMBERS_GUIDE_URL = 'https://.....'

        URL to Members guide page

- MIN_SHIFT_DURATION = 3

        Define minimum shift duration (in hours). 2 is not set.

- FTOP_BLOCK_SERVICE_EXCHANGE_DELAY = 1

        Define duration, in hours, before shift starts within exchange is not more available, for ftop shift_type member

- STANDARD_BLOCK_SERVICE_EXCHANGE_DELAY = 48

        Define duration, in hours, before shift starts within exchange is not more available, for standard shift_type member

- FTOP_SERVICES_RULES = {'successive_shifts_allowed': 0, 'max_shifts_per_cycle': 3}

        Define ftop members constraints (Les amis de La Coopé ex.)

- MEMBERS_SPACE_FAQ_TEMPLATE = None

        If set to None, "FAQ menu" will not be shown. To use a custom content add a template and set it's relative path

- MEMBERS_SPACE_HOME_TEMPLATE = 'members_space/supercafoutch/home.html'

        If not set, 'members_space/home.html' (la Cagette)

- MEMBERS_SPACE_SHOW_UNDERSTAND_MY_STATUS = False

        By default, is True. If False, tile showing explanations is not shown

- BLOCK_ACTIONS_FOR_ATTACHED_PEOPLE = False
        Attached people can or not change his services

- CAN_ADD_SHIFT = True

        By default, False. Set if coop can or not add shifts in their memberspace calendar

- ASSOCIATE_PEOPLE_CAN_CHANGE_SHIFT_TEMPLE_REGISTRATION = True

        By default, False.

- EXTENSION_TYPE_ID = 6

        By default 1. Extension type id (from shift_extension_type table) used to create extension

- COMMITTEES_SHIFT_NAME = 'Coolisses'
        By default "service des Comités"

### Reception

- RECEPTION_ADD_ADMIN_MODE = True

- RECEPTION_ADD_ALL_LEFT_IS_GOOD_QTIES = False

        During qties step, a  second button appears to make all pending products (left list) to be considered as "good"
        (RECEPTION_ADD_ADMIN_MODE needs to be set at True)

- RECEPTION_ADD_ALL_LEFT_IS_GOOD_PRICES = False

        During prices step, a second button appears to make all pending products (left list) to be considered as "good"
        (RECEPTION_ADD_ADMIN_MODE needs to be set at True)

- RECEPTION_MERGE_ORDERS_PSWD = 'pass2makeApause'

        Password to enter to validate merge orders processing
        It has been set only to stop member action, considering the impact of the merge

- RECEPTION_ADD_PRODUCTS_PSWD = 'pass2makeApause'

        Password to enter to add products to an order during reception
        Same principle as previous pswd

- RECEPTION_UPDATE_QTY_PSWD = 'pass2makeApause'

        Password to update a product qty during prices update.

- RECEPTION_PDT_LABELS_BTN_TEXT = 'Lancer l\'impression'

- RECEPTION_PDT_LABELS_FN = 'print_product_labels()'

- RECEPTION_PDT_LABELS_TEXT = 'Cliquez sur ce bouton pour imprimer les étiquettes code-barres à coller sur les produits'

- RECEPTION_PDT_LABELS_NB_FORCE_TO_NB = 65

        If set, force , by example, to 65 labels per product

- RECEPTION_SHELF_LABEL_PRINT = True

- DISPLAY_COL_AUTRES = True

        Display "Autres" column (showing select with action "rupture fournisseur")

- COEFF_MAG_ID = 1

        DB coeff id, needed to compute product shelf price

### Orders helper

- ORDERS_HELPER_CUSTOMIZE = False

        If lacagette_connection Odoo module is actived, True can be set, in order to allow user to record its preferences

### Stocks

- STOCK_LOC_ID = 12

        Only used in Inventory module, which is no more in use

- LOSSES_LOC_ID = 33

- LOSSES_PICKING_TYPE_ID = 10

- AUTOCONSO_LOC_ID = 27

- AUTOCONSO_PICKING_TYPE_ID = 7

- MEALS_LOC_ID = 33

- MEALS_PICKING_TYPE_ID = 10

### Inventory

- SHELFS_TO_BE_AHEAD_IN_SELECT_LIST = [90,74]

        These shelfs (odoo ids) will be shown first in select list

### New members space

- START_DATE_FOR_SHIFTS_HISTORY = "2018-01-01"

- AMNISTIE_DATE = "2021-11-24 00:00:00"

        In members_space history display a special activity about amnistie

- MEMBERS_SPACE_FAQ_TEMPLATE = 'members_space/supercoop/faq.html'

        Set alternative template for FAQ

- MEMBERS_SPACE_HOME_TEMPLATE = 'members_space/supercoop/home.html'

        Set alternative template for home page

- MEMBERS_SPACE_UNDERSTAND_MY_STATUS_TEMPLATE = 'members_space/supercoop/understand_my_status.html'

        Set alternative template for understand my status

- SHOW_ABCD_CALENDAR_TAB = False

        True by default

- PERMANENT_MESSAGE_BELOW_CONNECTION_FIELDS = "Si vous avez des difficultés à vous connecter, ...."

        Default is None
- STANDARD_BLOCK_SERVICE_EXCHANGE_DELAY = 36 (default = 24)

        Define duration, in hours, before shift starts within exchange is not more available, for standard shift_type member

- REMOVE_15_MINUTES_AT_SHIFT_END = False

        True by default. Remove 15 minutes to Odoo shift end (https://redmine.cooperatic.fr/issues/1680)

- ALLOW_FTOP_TO_DELETE_SHIFT = False

        If True, allow ftop member to delete futur shifts

### BDM Admin

- BDM_SHOW_FTOP_BUTTON = True (by default)

        If True, in BDM Admin manage shift template, on the calendar when subscribing a partner to a shift, "Volant" button is included

- ADMIN_BINOME_ACTIVE = False

        By defaut, True. Show "Gestion des binômes" in bdm admin

### Odoo users mapping

- ODOO_USERS_GRANTS = [ {'login': 'admin', 'bdm': {'all': True}}, {'login': gdm@lacoope.fr', 'bdm': {'record_absence': True}} ]

        If not set, any authentified Odoo user can make any action

### Miscellious

- EXPORT_COMPTA_FORMAT = 'Quadratus'

        If not set, export format is the one used by La Cagette
        Quadratus has been introduced to fit with Supercafoutch need.



- CUSTOM_CSS_FILES = {'all': ['common_lgds.css'],
                    'members': ['inscription_lgds.css']}

        To insert a CSS to all modules, key is 'all' (files actually put in outils/static/css)