Ejemplo n.º 1
0
    def test_connect_anonymous(self):
        Params.clear()
        self.calljson('/CORE/authentification', {'username': '', 'password': ''})
        self.assert_observer('core.auth', 'CORE', 'authentification')
        self.assert_json_equal('', '', 'BADAUTH')

        param = Parameter.objects.get(name='CORE-connectmode')
        param.value = '1'
        param.save()
        Params.clear()

        self.calljson('/CORE/authentification', {'username': '', 'password': ''})
        self.assert_observer('core.auth', 'CORE', 'authentification')
        self.assert_json_equal('', '', 'OK')
        self.assertEqual(self.response_json['connexion']['LOGIN'], '')
        self.assertEqual(self.response_json['connexion']['REALNAME'], '')
        self.assertEqual(self.response_json['connexion']['MODE'], '1')

        self.calljson('/CORE/menu', {})
        self.assert_observer('core.menu', 'CORE', 'menu')

        self.assertEqual(len(self.response_json['menus']), 1)
        self.assertEqual(self.response_json['menus'][0]['id'], 'dummy.foo')
        self.assertEqual(self.response_json['menus'][0]['text'], six.text_type('Dummy'))
        self.assertEqual(len(self.response_json['menus'][0]['menus']), 6)
Ejemplo n.º 2
0
 def _params(self):
     cur_p = self.old_db.open()
     cur_p.execute(
         "SELECT paramName,value FROM CORE_extension_params WHERE extensionId LIKE 'fr_sdlibre_facture' and paramName in ('ModeTVA','DefaultCompteVente','compteTVAVente','CompteRemise','CompteFraisBank','CompteCaisse')")
     for param_name, param_value in cur_p.fetchall():
         pname = ''
         if param_name == 'ModeTVA':
             pname = 'invoice-vat-mode'
             if param_value == '':
                 param_value = '0'
         elif param_name == 'DefaultCompteVente':
             pname = 'invoice-default-sell-account'
             param_value = convert_code(param_value)
         elif param_name == 'compteTVAVente':
             pname = 'invoice-vatsell-account'
             param_value = convert_code(param_value)
         elif param_name == 'CompteRemise':
             pname = 'invoice-reduce-account'
             param_value = convert_code(param_value)
         elif param_name == 'CompteFraisBank':
             pname = 'payoff-bankcharges-account'
             param_value = convert_code(param_value)
         elif param_name == 'CompteCaisse':
             pname = 'payoff-cash-account'
             param_value = convert_code(param_value)
         if pname != '':
             self.print_debug(
                 "=> parameter of invoice %s - %s", (pname, param_value))
             Parameter.change_value(pname, param_value)
     Params.clear()
Ejemplo n.º 3
0
 def get_show_fields(cls):
     fields = [
         "adherent", "date", ((Params.getvalue("event-degree-text"), 'degree'),)]
     if Params.getvalue("event-subdegree-enable") == 1:
         fields.append(
             ((Params.getvalue("event-subdegree-text"), 'subdegree'),))
     return fields
Ejemplo n.º 4
0
def conf_wizard_member(wizard_ident, xfer):
    if isinstance(wizard_ident, list) and (xfer is None):
        wizard_ident.append(("member_season", 11))
        wizard_ident.append(("member_subscriptiontype", 12))
        wizard_ident.append(("member_category", 13))
        wizard_ident.append(("member_params", 14))
    elif (xfer is not None) and (wizard_ident == "member_season"):
        xfer.add_title(_("Diacamma member"), _('Season'), _('Configuration of season'))
        xfer.fill_grid(5, Season, "season", Season.objects.all())
    elif (xfer is not None) and (wizard_ident == "member_subscriptiontype"):
        xfer.add_title(_("Diacamma member"), _('Subscriptions'), _('Configuration of subscription'))
        xfer.fill_grid(15, SubscriptionType, "subscriptiontype", SubscriptionType.objects.all())
        xfer.get_components("subscriptiontype").colspan = 6
        fill_params(xfer, ["member-subscription-mode", "member-subscription-message"], True)
    elif (xfer is not None) and (wizard_ident == "member_category"):
        xfer.add_title(_("Diacamma member"), _("Categories"), _('Configuration of categories'))
        xfer.new_tab(_('Parameters'))
        fill_params(xfer, ["member-team-enable", "member-team-text", "member-activite-enable", "member-activite-text", "member-age-enable"], True)
        if Params.getvalue("member-age-enable") == 1:
            xfer.new_tab(_('Age'))
            xfer.fill_grid(1, Age, "age", Age.objects.all())
        if Params.getvalue("member-team-enable") == 1:
            xfer.new_tab(Params.getvalue("member-team-text"))
            xfer.fill_grid(1, Team, "team", Team.objects.all())
        if Params.getvalue("member-activite-enable") == 1:
            xfer.new_tab(Params.getvalue("member-activite-text"))
            xfer.fill_grid(1, Activity, "activity", Activity.objects.all())
    elif (xfer is not None) and (wizard_ident == "member_params"):
        xfer.add_title(_("Diacamma member"), _('Parameters'), _('Configuration of main parameters'))
        fill_params(xfer, ["member-licence-enabled", "member-filter-genre", "member-numero", "member-birth", "member-connection"], True)
Ejemplo n.º 5
0
 def _params(self):
     cur_p = self.old_db.open()
     cur_p.execute(
         "SELECT paramName,value FROM CORE_extension_params WHERE extensionId LIKE 'fr_sdlibre_membres' and paramName in ('EquipeEnable', 'EquipeText', 'ActiviteEnable', 'ActiviteText', 'AgeEnable', 'LicenceEnabled', 'FiltreGenre', 'Numero', 'Naissance', 'compteTiersDefault', 'connexion')")
     for param_name, param_value in cur_p.fetchall():
         pname = ''
         if param_name == "EquipeEnable":
             pname = "member-team-enable"
         if param_name == "EquipeText":
             pname = "member-team-text"
         if param_name == "ActiviteEnable":
             pname = "member-activite-enable"
         if param_name == "ActiviteText":
             pname = "member-activite-text"
         if param_name == "AgeEnable":
             pname = "member-age-enable"
         if param_name == "LicenceEnabled":
             pname = "member-licence-enabled"
         if param_name == "FiltreGenre":
             pname = "member-filter-genre"
         if param_name == "Numero":
             pname = "member-numero"
         if param_name == "Naissance":
             pname = "member-birth"
         if param_name == "compteTiersDefault":
             pname = "invoice-account-third"
             param_value = convert_code(param_value)
         if param_name == "connexion":
             pname = "member-connection"
         if pname != '':
             self.print_debug(
                 "=> parameter of invoice %s - %s", (pname, param_value))
             Parameter.change_value(pname, param_value)
     Params.clear()
Ejemplo n.º 6
0
 def before_save(self, xfer):
     self.item.vta_rate = 0
     if (Params.getvalue("invoice-vat-mode") != 0) and (self.item.article is not None) and (self.item.article.vat is not None):
         self.item.vta_rate = float(self.item.article.vat.rate / 100)
     if Params.getvalue("invoice-vat-mode") == 2:
         self.item.vta_rate = -1 * self.item.vta_rate
     return
Ejemplo n.º 7
0
    def fillresponse(self):
        XferContainerCustom.fillresponse(self)
        self.new_tab(_('EMail configuration'))
        img = XferCompImage('img_conf')
        img.set_value(self.icon_path())
        img.set_location(0, 0, 1, 6)
        self.add_component(img)

        conf_params = ['mailing-smtpserver', 'mailing-smtpport',
                       'mailing-smtpsecurity', 'mailing-smtpuser', 'mailing-smtppass',
                       'mailing-delay-batch', 'mailing-nb-by-batch']
        Params.fill(self, conf_params, 1, 1)
        btn = XferCompButton('editparam')
        btn.set_location(3, 1, 1, 5)
        btn.set_action(self.request, ParamEdit.get_action(_('Modify'), 'images/edit.png'), close=CLOSE_NO, params={'params': conf_params})
        self.add_component(btn)
        if will_mail_send():
            btn = XferCompButton('tryemail')
            btn.set_location(1, 10, 2)
            btn.set_action(self.request, SendEmailTry.get_action(_('Send'), ''), close=CLOSE_NO)
            self.add_component(btn)

        self.new_tab(_('Default message'))
        img = XferCompImage('img_msg')
        img.set_value(self.icon_path())
        img.set_location(0, 0, 1, 6)
        self.add_component(img)

        msg_params = ['mailing-msg-connection']
        Params.fill(self, msg_params, 1, 1)
        btn = XferCompButton('editmsg')
        btn.set_location(1, 10, 2)
        btn.set_action(self.request, ParamEdit.get_action(_('Modify'), 'images/edit.png'), close=CLOSE_NO, params={'params': msg_params})
        self.add_component(btn)
Ejemplo n.º 8
0
 def show(self, xfer):
     if xfer.item.cost_accounting is None:
         xfer.remove_component("cost_accounting")
         xfer.remove_component("lbl_cost_accounting")
     xfer.params['new_account'] = Params.getvalue('invoice-account-third')
     xfer.move(0, 0, 1)
     lbl = XferCompLabelForm('title')
     lbl.set_location(1, 0, 4)
     lbl.set_value_as_title(get_value_if_choices(
         self.item.bill_type, self.item.get_field_by_name('bill_type')))
     xfer.add_component(lbl)
     details = xfer.get_components('detail')
     if Params.getvalue("invoice-vat-mode") != 0:
         if Params.getvalue("invoice-vat-mode") == 1:
             details.headers[2] = XferCompHeader(details.headers[2].name, _(
                 'price excl. taxes'), details.headers[2].type, details.headers[2].orderable)
             details.headers[6] = XferCompHeader(details.headers[6].name, _(
                 'total excl. taxes'), details.headers[6].type, details.headers[6].orderable)
         elif Params.getvalue("invoice-vat-mode") == 2:
             details.headers[2] = XferCompHeader(details.headers[2].name, _(
                 'price incl. taxes'), details.headers[2].type, details.headers[2].orderable)
             details.headers[6] = XferCompHeader(details.headers[6].name, _(
                 'total incl. taxes'), details.headers[6].type, details.headers[6].orderable)
         xfer.get_components('lbl_total_excltax').set_value_as_name(
             _('total excl. taxes'))
         xfer.filltab_from_model(1, xfer.get_max_row() + 1, True,
                                 [((_('VTA sum'), 'vta_sum'), (_('total incl. taxes'), 'total_incltax'))])
     if self.item.status == 0:
         SupportingEditor.show_third(self, xfer, 'invoice.add_bill')
     else:
         SupportingEditor.show_third_ex(self, xfer)
         details.actions = []
         if self.item.bill_type != 0:
             SupportingEditor.show(self, xfer)
     return
Ejemplo n.º 9
0
 def get_connection_info(self):
     from django.conf import settings
     import lucterios.CORE
     import os
     LucteriosSession.clean_anonymous()
     info_cnx = {}
     info_cnx['TITLE'] = six.text_type(settings.APPLIS_NAME)
     info_cnx['SUBTITLE'] = settings.APPLIS_SUBTITLE()
     info_cnx['VERSION'] = six.text_type(settings.APPLIS_VERSION)
     info_cnx['SERVERVERSION'] = six.text_type(lucterios.CORE.__version__)
     info_cnx['COPYRIGHT'] = six.text_type(settings.APPLIS_COPYRIGHT)
     info_cnx['LOGONAME'] = settings.APPLIS_LOGO.decode()
     info_cnx['BACKGROUND'] = settings.APPLIS_BACKGROUND.decode()
     info_cnx['STYLE'] = settings.APPLIS_STYLE.decode()
     info_cnx['SUPPORT_EMAIL'] = six.text_type(settings.APPLI_EMAIL)
     info_cnx['SUPPORT_HTML'] = six.text_type(settings.APPLI_SUPPORT())
     info_cnx['INFO_SERVER'] = get_info_server()
     setting_module_name = os.getenv("DJANGO_SETTINGS_MODULE", "???.???")
     info_cnx['INSTANCE'] = setting_module_name.split('.')[0]
     info_cnx['MESSAGE_BEFORE'] = Params.getvalue("CORE-MessageBefore")
     info_cnx['LANGUAGE'] = self.language
     info_cnx['MODE'] = six.text_type(Params.getvalue("CORE-connectmode"))
     if self.request.user.is_authenticated:
         info_cnx['LOGIN'] = self.request.user.username
         info_cnx['REALNAME'] = "%s %s" % (self.request.user.first_name, self.request.user.last_name)
         info_cnx['EMAIL'] = self.request.user.email
     else:
         info_cnx['LOGIN'] = ''
         info_cnx['REALNAME'] = ''
         info_cnx['EMAIL'] = ''
     self.responsejson['connexion'] = info_cnx
Ejemplo n.º 10
0
    def test_params(self):
        self.factory.xfer = CategoryConf()
        self.call('/diacamma.member/categoryConf', {}, False)
        self.assert_observer(
            'core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('COMPONENTS/*', 37)
        self.assert_count_equal('COMPONENTS/TAB', 4)
        self.assert_xml_equal('COMPONENTS/TAB[1]', 'Paramètres')
        self.assert_xml_equal('COMPONENTS/TAB[2]', 'Age')
        self.assert_xml_equal('COMPONENTS/TAB[3]', 'Équipe')
        self.assert_xml_equal('COMPONENTS/TAB[4]', 'Activité')
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="member-team-text"]', 'Équipe')
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="member-activite-text"]', 'Activité')

        Parameter.change_value("member-team-text", 'Cours')
        Parameter.change_value("member-activite-text", 'Sport')
        Params.clear()

        self.factory.xfer = CategoryConf()
        self.call('/diacamma.member/categoryConf', {}, False)
        self.assert_observer(
            'core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('COMPONENTS/*', 37)
        self.assert_count_equal('COMPONENTS/TAB', 4)
        self.assert_xml_equal('COMPONENTS/TAB[1]', 'Paramètres')
        self.assert_xml_equal('COMPONENTS/TAB[2]', 'Age')
        self.assert_xml_equal('COMPONENTS/TAB[3]', 'Cours')
        self.assert_xml_equal('COMPONENTS/TAB[4]', 'Sport')
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="member-team-text"]', 'Cours')
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="member-activite-text"]', 'Sport')
Ejemplo n.º 11
0
 def setUp(self):
     self.factory = XmlRequestFactory(self.xfer_class, self.language)
     self.client = XmlClient(self.language)
     self.response = None
     self.clean_resp()
     Params.clear()
     notfree_mode_connect()
Ejemplo n.º 12
0
 def total(self):
     if Params.getvalue("invoice-vat-mode") == 2:
         return self.total_incltax
     elif Params.getvalue("invoice-vat-mode") == 1:
         return self.total_excltax
     else:
         return format_devise(self.get_total(), 5)
Ejemplo n.º 13
0
 def fillresponse(self, account_system=''):
     if account_system != '':
         if self.confirme(_('Do you confirm to select "%s" like accounting system?{[br/]}{[br/]}{[i]}{[u]}Warning{[/u]}: This choose is definitive.{[/i]}') %
                          accounting_system_name(account_system)):
             Parameter.change_value('accounting-system', account_system)
             Params.clear()
             clear_system_account()
Ejemplo n.º 14
0
    def test_payment_billpartial_with_tax(self):
        Parameter.change_value('invoice-vat-mode', '2')
        Params.clear()
        details = [
            {'article': 2, 'designation': 'Article 02', 'price': '100.00', 'quantity': 1}]
        self._create_bill(details, 1, '2015-04-02', 4, True)
        self.factory.xfer = PayoffAddModify()
        self.call(
            '/diacamma.payoff/payoffAddModify', {'SAVE': 'YES', 'supporting': 6, 'amount': '60.0', 'payer': "Ma'a Dalton", 'date': '2015-04-01', 'mode': 0, 'reference': 'abc', 'bank_account': 0}, False)
        self.assert_observer(
            'core.acknowledge', 'diacamma.payoff', 'payoffAddModify')

        self.factory.xfer = BillShow()
        self.call('/diacamma.invoice/billShow', {'bill': 6}, False)
        self.assert_observer(
            'core.custom', 'diacamma.invoice', 'billShow')
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="title"]', "{[br/]}{[center]}{[u]}{[b]}facture{[/b]}{[/u]}{[/center]}")
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="status"]', "validé")
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="total_rest_topay"]', "40.00€")
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="vta_sum"]', "4.76€")
        self.assert_count_equal('ACTIONS/ACTION', 5)
        self.assert_action_equal('ACTIONS/ACTION[1]', (six.text_type(
            'Règlement'), 'diacamma.payoff/images/payments.png', 'diacamma.payoff', 'payableShow', 0, 1, 1))

        self.factory.xfer = PayableShow()
        self.call('/diacamma.payoff/supportingPaymentMethod', {'bill': 6, 'item_name': 'bill'}, False)
        self.assert_observer('core.custom', 'diacamma.payoff', 'supportingPaymentMethod')
        self.assert_xml_equal('COMPONENTS/LABELFORM[@name="num_txt"]', 'A-2')
        self.check_payment(6, 'facture A-2 - 2 avril 2015', '38.1', '1.9')
Ejemplo n.º 15
0
    def test_parameters_float(self):
        param = Parameter.objects.create(
            name='param_float', typeparam=2)
        param.args = "{'Min':20, 'Max':30, 'Prec':2}"
        param.value = '22.25'
        param.save()
        Params.fill(self.xfer, ['param_float'], 1, 1, True)
        Params.fill(self.xfer, ['param_float'], 1, 2, False)
        self.callparam()
        self.assert_count_equal('COMPONENTS/*', 4)
        self.assert_count_equal(
            'COMPONENTS/LABELFORM[@name="lbl_param_float"]', 2)
        self.assert_xml_equal(
            'COMPONENTS/LABELFORM[@name="param_float"]', '22.25')
        self.assert_xml_equal('COMPONENTS/FLOAT[@name="param_float"]', '22.25')
        self.assert_attrib_equal(
            'COMPONENTS/FLOAT[@name="param_float"]', 'min', '20.0')
        self.assert_attrib_equal(
            'COMPONENTS/FLOAT[@name="param_float"]', 'max', '30.0')
        self.assert_attrib_equal(
            'COMPONENTS/FLOAT[@name="param_float"]', 'prec', '2')

        self.factory.xfer = ParamSave()
        self.call(
            '/CORE/paramSave', {'params': 'param_float', 'param_float': '26.87'}, False)
        self.assert_observer('core.acknowledge', 'CORE', 'paramSave')
        self.assertEqual(Params.getvalue('param_float'), 26.87)
Ejemplo n.º 16
0
def conf_wizard_contacts(wizard_ident, xfer):
    if isinstance(wizard_ident, list) and (xfer is None):
        wizard_ident.append(("contacts_current", 5))
        wizard_ident.append(("contacts_params", 40))
        wizard_ident.append(("contacts_responsable", 41))
    elif (xfer is not None) and (wizard_ident == "contacts_current"):
        xfer.add_title(_("Lucterios contacts"), _("Our details"), _('configure our details'))
        xfer.model = LegalEntity
        xfer.item = LegalEntity.objects.get(id=1)
        xfer.fill_from_model(1, xfer.get_max_row() + 1, True, desc_fields=LegalEntity.get_show_fields()[_('001@Identity')])
        xfer.remove_component('structure_type')
        btn = XferCompButton("btnconf")
        btn.set_location(2, xfer.get_max_row() + 1)
        btn.set_is_mini(True)
        btn.set_action(xfer.request, CurrentStructureAddModify.get_action('', "images/edit.png"), close=CLOSE_NO)
        xfer.add_component(btn)
    elif (xfer is not None) and (wizard_ident == "contacts_params"):
        xfer.add_title(_("Lucterios contacts"), _("Contacts configuration"), _('configure your contacts'))
        param_lists = ['contacts-mailtoconfig', 'contacts-createaccount']
        Params.fill(xfer, param_lists, 1, xfer.get_max_row() + 1)
        btn = XferCompButton('editparam')
        btn.set_location(4, xfer.get_max_row())
        btn.set_is_mini(True)
        btn.set_action(xfer.request, ParamEdit.get_action(TITLE_MODIFY, 'images/edit.png'), close=CLOSE_NO,
                       params={'params': param_lists})
        xfer.add_component(btn)
        lbl = XferCompLabelForm("nb_function")
        lbl.set_location(1, xfer.get_max_row() + 1)
        lbl.set_value(TEXT_TOTAL_NUMBER % {'name': Function._meta.verbose_name_plural, 'count': len(Function.objects.all())})
        xfer.add_component(lbl)
        lbl = XferCompLabelForm("nb_structuretype")
        lbl.set_location(1, xfer.get_max_row() + 1)
        lbl.set_value(TEXT_TOTAL_NUMBER % {'name': StructureType._meta.verbose_name_plural, 'count': len(StructureType.objects.all())})
        xfer.add_component(lbl)
        lbl = XferCompLabelForm("nb_customfield")
        lbl.set_location(1, xfer.get_max_row() + 1)
        lbl.set_value(TEXT_TOTAL_NUMBER % {'name': CustomField._meta.verbose_name_plural, 'count': len(CustomField.objects.all())})
        xfer.add_component(lbl)
        btn = XferCompButton("btnconf")
        btn.set_location(4, xfer.get_max_row() - 2, 1, 3)
        btn.set_action(xfer.request, Configuration.get_action(TITLE_MODIFY, "images/edit.png"), close=CLOSE_NO)
        xfer.add_component(btn)

        lbl = XferCompLabelForm("nb_legalentity")
        lbl.set_location(1, xfer.get_max_row() + 1)
        lbl.set_value(TEXT_TOTAL_NUMBER % {'name': LegalEntity._meta.verbose_name_plural, 'count': len(LegalEntity.objects.all())})
        xfer.add_component(lbl)
        lbl = XferCompLabelForm("nb_individual")
        lbl.set_location(1, xfer.get_max_row() + 1)
        lbl.set_value(TEXT_TOTAL_NUMBER % {'name': Individual._meta.verbose_name_plural, 'count': len(Individual.objects.all())})
        xfer.add_component(lbl)
        btn = XferCompButton("btnimport")
        btn.set_location(4, xfer.get_max_row() - 1, 1, 2)
        btn.set_action(xfer.request, ContactImport.get_action(_("Contact import"), "images/add.png"), close=CLOSE_NO, params={'step': 0})
        xfer.add_component(btn)
    elif (xfer is not None) and (wizard_ident == "contacts_responsable"):
        xfer.add_title(_("Lucterios contacts"), _('associates'), _('configure your association'))
        xfer.params['legal_entity'] = 1
        xfer.fill_grid(5, Responsability, "responsability", Responsability.objects.filter(legal_entity_id=1))
Ejemplo n.º 17
0
def fill_params(xfer, is_mini=False):
    param_lists = ['payoff-cash-account', 'payoff-bankcharges-account', 'payoff-email-message']
    Params.fill(xfer, param_lists, 1, xfer.get_max_row() + 1)
    btn = XferCompButton('editparam')
    btn.set_is_mini(is_mini)
    btn.set_location(1, xfer.get_max_row() + 1, 2, 1)
    btn.set_action(xfer.request, ParamEdit.get_action(TITLE_MODIFY, 'images/edit.png'), close=CLOSE_NO, params={'params': param_lists})
    xfer.add_component(btn)
Ejemplo n.º 18
0
def fill_params(xfer, is_mini=False):
    xfer.params['params'] = ['accounting-devise', 'accounting-devise-iso', 'accounting-devise-prec', 'accounting-sizecode']
    Params.fill(xfer, xfer.params['params'], 1, xfer.get_max_row() + 1)
    btn = XferCompButton('editparam')
    btn.set_is_mini(is_mini)
    btn.set_location(1, xfer.get_max_row() + 1, 2, 1)
    btn.set_action(xfer.request, ParamEdit.get_action(TITLE_MODIFY, 'images/edit.png'), close=CLOSE_NO)
    xfer.add_component(btn)
Ejemplo n.º 19
0
 def setUp(self):
     self.xfer_class = XferContainerAcknowledge
     self.xfer_class.url_text = "customer/details"
     self.xfer_class.is_view_right = ''
     LucteriosTest.setUp(self)
     self.value = False
     self.xfer = XferContainerCustom()
     Params.clear()
Ejemplo n.º 20
0
 def __str__(self):
     val = []
     if Params.getvalue("member-team-enable") and (self.team is not None):
         val.append(six.text_type(self.team))
     if Params.getvalue("member-activite-enable") and (self.activity is not None):
         val.append("[%s]" % six.text_type(self.activity))
     if Params.getvalue("member-licence-enabled") and (self.value is not None):
         val.append(self.value)
     return " ".join(val)
Ejemplo n.º 21
0
 def get_default_fields(cls):
     fields = ["contact", (_('subscript?'), 'is_subscripter'), (_('current'), 'current_degree'), (_(
         '%s result') % Params.getvalue("event-degree-text"), 'degree_result_simple')]
     if Params.getvalue("event-subdegree-enable") == 1:
         fields.append(
             (_('%s result') % Params.getvalue("event-subdegree-text"), 'subdegree_result'))
     fields.append((_('article'), 'article.ref_price'))
     fields.append('comment')
     return fields
Ejemplo n.º 22
0
def fill_params(xfer):
    param_lists = ["event-degree-text", "event-subdegree-enable",
                   "event-subdegree-text", "event-comment-text"]
    Params.fill(xfer, param_lists, 1, xfer.get_max_row() + 1, nb_col=1)
    btn = XferCompButton('editparam')
    btn.set_location(1, xfer.get_max_row() + 1, 2, 1)
    btn.set_action(xfer.request, ParamEdit.get_action(TITLE_MODIFY, 'images/edit.png'),
                   close=CLOSE_NO, params={'params': param_lists, 'nb_col': 1})
    xfer.add_component(btn)
Ejemplo n.º 23
0
def fill_params(xfer, param_lists=None, is_mini=False):
    if param_lists is None:
        param_lists = ['invoice-vat-mode', 'invoice-default-sell-account',
                       'invoice-vatsell-account', 'invoice-reduce-account', 'invoice-account-third']
    Params.fill(xfer, param_lists, 1, xfer.get_max_row() + 1)
    btn = XferCompButton('editparam')
    btn.set_is_mini(is_mini)
    btn.set_location(1, xfer.get_max_row() + 1, 2, 1)
    btn.set_action(xfer.request, ParamEdit.get_action(TITLE_MODIFY, 'images/edit.png'), close=CLOSE_NO, params={'params': param_lists})
    xfer.add_component(btn)
Ejemplo n.º 24
0
 def get_show_fields(cls):
     fields = []
     if Params.getvalue("member-team-enable"):
         fields.append(((Params.getvalue("member-team-text"), "team"),))
     if Params.getvalue("member-activite-enable"):
         fields.append(
             ((Params.getvalue("member-activite-text"), "activity"),))
     if Params.getvalue("member-licence-enabled"):
         fields.append("value")
     return fields
Ejemplo n.º 25
0
 def before_save(self, xfer):
     accounts = self.item.third.accountthird_set.filter(code__regex=current_system_account().get_societary_mask())
     if len(accounts) == 0:
         if Params.getvalue("condominium-old-accounting"):
             AccountThird.objects.create(third=self.item.third, code=correct_accounting_code(Params.getvalue("condominium-default-owner-account")))
         else:
             for num_account in range(1, 5):
                 AccountThird.objects.create(third=self.item.third,
                                             code=correct_accounting_code(Params.getvalue("condominium-default-owner-account%d" % num_account)))
     return SupportingEditor.before_save(self, xfer)
Ejemplo n.º 26
0
 def fillresponse_body(self):
     if Params.getvalue("member-age-enable") == 1:
         self.new_tab(_('Age'))
         self.fill_grid(0, Age, "age", Age.objects.all())
     if Params.getvalue("member-team-enable") == 1:
         self.new_tab(Params.getvalue("member-team-text"))
         self.fill_grid(0, Team, "team", Team.objects.all())
     if Params.getvalue("member-activite-enable") == 1:
         self.new_tab(Params.getvalue("member-activite-text"))
         self.fill_grid(0, Activity, "activity", Activity.objects.all())
Ejemplo n.º 27
0
 def fillresponse(self):
     XferListEditor.fillresponse(self)
     grid = self.get_components(self.field_id)
     grid.colspan = 3
     if Params.getvalue("invoice-vat-mode") == 1:
         grid.headers[5] = XferCompHeader(grid.headers[5].name, _('total excl. taxes'),
                                          grid.headers[5].type, grid.headers[5].orderable)
     elif Params.getvalue("invoice-vat-mode") == 2:
         grid.headers[5] = XferCompHeader(grid.headers[5].name, _('total incl. taxes'),
                                          grid.headers[5].type, grid.headers[5].orderable)
Ejemplo n.º 28
0
 def generate_entry(self):
     if self.bill_type == 2:
         is_bill = -1
     else:
         is_bill = 1
     third_account = self.get_third_account(
         current_system_account().get_customer_mask(), self.fiscal_year)
     self.entry = EntryAccount.objects.create(
         year=self.fiscal_year, date_value=self.date, designation=self.__str__(),
         journal=Journal.objects.get(id=3), costaccounting=self.cost_accounting)
     EntryLineAccount.objects.create(
         account=third_account, amount=is_bill * self.get_total_incltax(), third=self.third, entry=self.entry)
     remise_total = 0
     detail_list = {}
     for detail in self.detail_set.all():
         if detail.article is not None:
             detail_code = detail.article.sell_account
         else:
             detail_code = Params.getvalue("invoice-default-sell-account")
         detail_account = ChartsAccount.get_account(
             detail_code, self.fiscal_year)
         if detail_account is None:
             raise LucteriosException(
                 IMPORTANT, _("article has code account unknown!"))
         if detail_account.id not in detail_list.keys():
             detail_list[detail_account.id] = [detail_account, 0]
         detail_list[detail_account.id][
             1] += detail.get_total_excltax() + detail.get_reduce_excltax()
         remise_total += detail.get_reduce_excltax()
     if remise_total > 0.001:
         remise_code = Params.getvalue("invoice-reduce-account")
         remise_account = ChartsAccount.get_account(
             remise_code, self.fiscal_year)
         if remise_account is None:
             raise LucteriosException(
                 IMPORTANT, _("reduce-account is not defined!"))
         EntryLineAccount.objects.create(
             account=remise_account, amount=-1 * is_bill * remise_total, entry=self.entry)
     for detail_item in detail_list.values():
         EntryLineAccount.objects.create(
             account=detail_item[0], amount=is_bill * detail_item[1], entry=self.entry)
     if self.get_vta_sum() > 0.001:
         vta_code = Params.getvalue("invoice-vatsell-account")
         vta_account = ChartsAccount.get_account(
             vta_code, self.fiscal_year)
         if vta_account is None:
             raise LucteriosException(
                 IMPORTANT, _("vta-account is not defined!"))
         EntryLineAccount.objects.create(
             account=vta_account, amount=is_bill * self.get_vta_sum(), entry=self.entry)
     no_change, debit_rest, credit_rest = self.entry.serial_control(
         self.entry.get_serial())
     if not no_change or (abs(debit_rest) > 0.001) or (abs(credit_rest) > 0.001):
         raise LucteriosException(
             GRAVE, _("Error in accounting generator!") + "{[br/]} no_change=%s debit_rest=%.3f credit_rest=%.3f" % (no_change, debit_rest, credit_rest))
Ejemplo n.º 29
0
 def get_import_fields(cls):
     fields = super(Individual, cls).get_import_fields()
     fields.append(('subscriptiontype', _('subscription type')))
     if Params.getvalue("member-team-enable"):
         fields.append(('team', Params.getvalue("member-team-text")))
     if Params.getvalue("member-activite-enable"):
         fields.append(
             ('activity', Params.getvalue("member-activite-text")))
     if Params.getvalue("member-licence-enabled"):
         fields.append(('value', _('license #')))
     return fields
Ejemplo n.º 30
0
 def get_show_fields(cls):
     fields = Individual.get_show_fields()
     keys = list(fields.keys())
     if Params.getvalue("member-numero"):
         fields[keys[0]][0] = ("num", fields[keys[0]][0])
     if Params.getvalue("member-birth"):
         fields[keys[0]].insert(-1, ("birthday", "birthplace"))
         fields[keys[0]].insert(-1, ((_("age category"), "age_category"),))
     fields[_('002@Subscription')] = ['subscription_set']
     fields[''] = [((_("reference date"), "dateref"),)]
     return fields
Ejemplo n.º 31
0
 def initialize_system(self):
     Parameter.change_value('accounting-sizecode', 6)
     Parameter.change_value('condominium-default-owner-account',
                            correct_accounting_code(''))
     Parameter.change_value('condominium-default-owner-account1',
                            correct_accounting_code('410100'))
     Parameter.change_value('condominium-default-owner-account2',
                            correct_accounting_code('410000'))
     Parameter.change_value('condominium-default-owner-account3',
                            correct_accounting_code('410100'))
     Parameter.change_value('condominium-default-owner-account4',
                            correct_accounting_code(''))
     Parameter.change_value('condominium-default-owner-account5',
                            correct_accounting_code('410000'))
     Parameter.change_value('condominium-current-revenue-account',
                            correct_accounting_code('701100'))
     Parameter.change_value('condominium-exceptional-revenue-account',
                            correct_accounting_code('700100'))
     Parameter.change_value('condominium-advance-revenue-account',
                            correct_accounting_code('701200'))
     Parameter.change_value('condominium-fundforworks-revenue-account',
                            correct_accounting_code('700000'))
     Parameter.change_value('condominium-exceptional-reserve-account',
                            correct_accounting_code('160000'))
     Parameter.change_value('condominium-advance-reserve-account',
                            correct_accounting_code('100000'))
     Parameter.change_value('condominium-fundforworks-reserve-account',
                            correct_accounting_code('100000'))
     Parameter.change_value('condominium-mode-current-callfunds', 1)
     Params.clear()
     CustomField.objects.get_or_create(modelname='accounting.Third',
                                       name='IBAN',
                                       kind=0,
                                       args="{'multi': False}")
     CustomField.objects.get_or_create(modelname='accounting.Third',
                                       name='SWIFT',
                                       kind=0,
                                       args="{'multi': False}")
Ejemplo n.º 32
0
    def test_parameters_bool(self):
        param = Parameter.objects.create(name='param_bool', typeparam=3)
        param.args = "{}"
        param.value = 'False'
        param.save()

        Params.fill(self.xfer, ['param_bool'], 1, 1, True)
        self.callparam()
        self.assert_count_equal('', 1)
        self.assert_json_equal('LABELFORM', "param_bool", 'Non')

        Params.fill(self.xfer, ['param_bool'], 1, 1, False)
        self.callparam()
        self.assert_count_equal('', 1)
        self.assert_json_equal('CHECK', "param_bool", '0')

        self.factory.xfer = ParamSave()
        self.calljson('/CORE/paramSave', {
            'params': 'param_bool',
            'param_bool': '1'
        }, False)
        self.assert_observer('core.acknowledge', 'CORE', 'paramSave')
        self.assertEqual(Params.getvalue('param_bool'), True)
Ejemplo n.º 33
0
 def ventilate_result(self, fiscal_year, ventilate):
     Owner.throw_not_allowed()
     result = fiscal_year.total_revenue - fiscal_year.total_expense
     if abs(result) > 0.001:
         total_part = PropertyLot.get_total_part()
         if total_part > 0:
             close_entry = EntryAccount(
                 year=fiscal_year,
                 designation=_("Ventilation for %s") % fiscal_year,
                 journal_id=5)
             close_entry.check_date()
             close_entry.save()
             if ventilate == 0:
                 amount = 0
                 biggerowner_val = 0
                 biggerowner_line = None
                 for owner in Owner.objects.all():
                     total = owner.propertylot_set.aggregate(
                         sum=Sum('value'))
                     if ('sum' in total.keys()) and (total['sum']
                                                     is not None):
                         value = currency_round(result * total['sum'] /
                                                total_part)
                         if abs(value) > 0.0001:
                             owner_account = owner.third.get_account(
                                 fiscal_year, owner.get_third_mask(1))
                             last_line = EntryLineAccount.objects.create(
                                 account=owner_account,
                                 amount=-1 * value,
                                 entry=close_entry,
                                 third=owner.third)
                             if biggerowner_val < total['sum']:
                                 biggerowner_val = total['sum']
                                 biggerowner_line = last_line
                             amount += value
                 diff = currency_round(result - amount)
                 if abs(diff) > 0.0001:
                     biggerowner_line.amount -= diff
                     biggerowner_line.save()
             else:
                 EntryLineAccount.objects.create(account_id=ventilate,
                                                 amount=result,
                                                 entry=close_entry)
             reserve_account = ChartsAccount.get_account(
                 Params.getvalue("condominium-current-revenue-account"),
                 fiscal_year)
             EntryLineAccount.objects.create(account=reserve_account,
                                             amount=-1 * result,
                                             entry=close_entry)
             close_entry.closed()
Ejemplo n.º 34
0
    def test_parameters_memo(self):
        param = Parameter.objects.create(name='param_memo', typeparam=0)
        param.args = "{'Multi':True}"
        param.value = 'other value'
        param.save()

        Params.fill(self.xfer, ['param_memo'], 1, 1, True)
        self.callparam()
        self.assert_count_equal('', 1)
        self.assert_json_equal('LABELFORM', "param_memo", 'other value')

        Params.fill(self.xfer, ['param_memo'], 1, 1, False)
        self.callparam()
        self.assert_count_equal('', 1)
        self.assert_json_equal('MEMO', "param_memo", 'other value')

        self.factory.xfer = ParamSave()
        self.calljson('/CORE/paramSave', {
            'params': 'param_memo',
            'param_memo': 'new special value'
        }, False)
        self.assert_observer('core.acknowledge', 'CORE', 'paramSave')
        self.assertEqual(Params.getvalue('param_memo'), 'new special value')
Ejemplo n.º 35
0
 def CurrentCallFundsAdding(self, to_create):
     nb_seq = 0
     if Params.getvalue("condominium-mode-current-callfunds") == 0:
         nb_seq = 4
     if Params.getvalue("condominium-mode-current-callfunds") == 1:
         nb_seq = 12
     year = FiscalYear.get_current()
     calls = CallFunds.objects.filter(date__gte=year.begin,
                                      date__lte=year.end,
                                      calldetail__type_call=0).distinct()
     nb_curent = len(calls)
     if to_create:
         year = FiscalYear.get_current()
         date = same_day_months_after(year.begin,
                                      int(nb_curent * 12 / nb_seq))
         new_call = CallFunds.objects.create(
             date=date,
             comment=_(
                 "Call of funds #%(num)d of year from %(begin)s to %(end)s")
             % {
                 'num': nb_curent + 1,
                 'begin': get_value_converted(year.begin),
                 'end': get_value_converted(year.end)
             },
             status=0)
         for category in Set.objects.filter(type_load=0, is_active=True):
             CallDetail.objects.create(
                 set=category,
                 type_call=0,
                 callfunds=new_call,
                 price=category.get_new_current_callfunds(),
                 designation=_("%(type)s - #%(num)d") % {
                     'type': _('current'),
                     'num': nb_curent + 1
                 })
     else:
         return nb_curent < nb_seq
Ejemplo n.º 36
0
    def create_dlg(self, username, legalentity):
        dlg = self.create_custom(self.model)
        img = XferCompImage('img')
        img.set_value(self.icon_path())
        img.set_location(0, 0, 1, 6)
        dlg.add_component(img)
        dlg.fill_from_model(1, 0, False,
                            ['genre', 'lastname', 'firstname', 'email'])
        dlg.get_components(
            'email'
        ).mask = '^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-_])+\.)+([a-zA-Z0-9]{2,4})+$'
        row = dlg.get_max_row() + 1
        lbl = XferCompLabelForm("username_lbl")
        lbl.set_location(1, row)
        lbl.set_value_as_name(_('username'))
        dlg.add_component(lbl)
        edt = XferCompEdit("username")
        edt.set_location(2, row)
        edt.set_needed(True)
        edt.set_value(username)
        dlg.add_component(edt)
        if Params.getvalue("contacts-createaccount") == 2:
            row = dlg.get_max_row() + 1
            lbl = XferCompLabelForm("legalentity_lbl")
            lbl.set_location(1, row)
            lbl.set_value_as_name(_("your structure name"))
            dlg.add_component(lbl)
            edt = XferCompEdit("legalentity")
            edt.set_location(2, row)
            edt.set_needed(True)
            edt.set_value(legalentity)
            dlg.add_component(edt)
        row = dlg.get_max_row() + 1
        lbl = XferCompLabelForm("captcha_lbl")
        lbl.set_location(1, row)
        lbl.set_value_as_name(_("captcha"))
        dlg.add_component(lbl)
        edt = XferCompCaptcha("captcha")
        edt.set_location(2, row)
        dlg.add_component(edt)

        lbl = XferCompLabelForm("error_lbl")
        lbl.set_location(2, row + 1)
        lbl.set_color('red')
        lbl.set_value(self.getparam('error', ''))
        dlg.add_component(lbl)
        dlg.add_action(self.get_action(_('Ok'), 'images/ok.png'),
                       params={"SAVE": "YES"})
        dlg.add_action(WrapAction(_('Cancel'), 'images/cancel.png'))
Ejemplo n.º 37
0
 def check_account_config(self):
     from diacamma.accounting.tools import current_system_account
     try:
         lettering_check = Params.getvalue(
             "accounting-lettering-check").split('{[br/]}')
         changed = False
         new_lettering = []
         for letter in lettering_check:
             if match(current_system_account().get_third_mask(),
                      letter) is not None:
                 new_lettering.append(letter)
             else:
                 changed = True
         for account in ChartsAccount.objects.filter(
                 year=FiscalYear.get_current(),
                 code__regex=current_system_account().get_societary_mask()):
             if account.code not in new_lettering:
                 new_lettering.append(account.code)
                 changed = True
         if changed:
             Params.setvalue("accounting-lettering-check",
                             '{[br/]}'.join(new_lettering))
     except LucteriosException:
         pass
Ejemplo n.º 38
0
 def security(self):
     if self.name == '':
         raise AdminException("Instance not precise!")
     if not isfile(self.setting_path) or not isfile(self.instance_conf):
         raise AdminException("Instance not exists!")
     security_param = self.extra
     self.read(False)
     self.clear_info_()
     if SECURITY_PASSWD in security_param.keys():
         passwd = self._get_security_password(security_param)
         from lucterios.CORE.models import LucteriosUser
         adm_user = LucteriosUser.objects.get(username='******')
         adm_user.set_password(passwd)
         adm_user.save()
         self.print_info_("Admin password change in '%s'." % self.name)
     if (SECURITY_MODE in security_param.keys()) and (int(
             security_param[SECURITY_MODE]) in [0, 1, 2]):
         from lucterios.CORE.models import Parameter
         from lucterios.CORE.parameters import Params
         db_param = Parameter.objects.get(name='CORE-connectmode')
         db_param.value = six.text_type(security_param[SECURITY_MODE])
         db_param.save()
         Params.clear()
         self.print_info_("Security mode change in '%s'." % self.name)
Ejemplo n.º 39
0
def default_params():
    Parameter.change_value('member-team-text', 'group')
    Parameter.change_value('member-activite-text', 'passion')
    Parameter.change_value('member-tax-receipt', '708')
    Params.clear()
    default = Activity.objects.get(id=1)
    default.name = "activity1"
    default.description = "activity N°1"
    default.save()
    Activity.objects.create(name="activity2", description="activity N°2")
    Team.objects.create(name="team1", description="team N°1{[br/]}The bests")
    Team.objects.create(name="team2",
                        description="team N°2{[br/]}The chalengers")
    Team.objects.create(name="team3", description="team N°3{[br/]}The newbies")
    Age.objects.create(name="Poussins", minimum=9, maximum=10)
    Age.objects.create(name="Benjamins", minimum=11, maximum=12)
    Age.objects.create(name="Minimes", minimum=13, maximum=14)
    Age.objects.create(name="Cadets", minimum=15, maximum=16)
    Age.objects.create(name="Juniors", minimum=17, maximum=18)
    Age.objects.create(name="Espoirs", minimum=19, maximum=21)
    Age.objects.create(name="Seniors", minimum=22, maximum=38)
    Age.objects.create(name="Vétérans", minimum=39, maximum=108)
    Document.objects.create(season=Season.current_season(), name="Doc 1")
    Document.objects.create(season=Season.current_season(), name="Doc 2")
Ejemplo n.º 40
0
 def fill_body(self):
     line_idx = 0
     total1 = 0
     total2 = 0
     totalb = [0, 0, 0]
     revenue_account = Params.getvalue("condominium-current-revenue-account")
     initial_filter = self.filter
     initial_lastfilter = self.lastfilter
     for classloaditem in Set.objects.filter(type_load=0, is_active=True):
         first_setcost = classloaditem.setcost_set.filter(year=self.item).first()
         if first_setcost is None:
             continue
         current_costaccounting = first_setcost.cost_accounting
         current_request = Q(account__code__regex=current_system_account().get_expence_mask())
         current_request |= Q(account__code__regex=current_system_account().get_revenue_mask()) & ~Q(account__code=revenue_account)
         if initial_filter is not None:
             self.filter = initial_filter & Q(costaccounting_id=current_costaccounting.id)
         if initial_lastfilter is not None:
             self.lastfilter = initial_lastfilter & Q(costaccounting_id=current_costaccounting.last_costaccounting_id)
         query_budget = [~Q(code=revenue_account) & Q(cost_accounting=current_costaccounting)]
         if self.next_year is not None:
             set_cost = classloaditem.setcost_set.filter(year=self.next_year).first()
             if set_cost is None:
                 set_cost = classloaditem.create_new_cost(year=self.next_year)
             query_budget.append(~Q(code=revenue_account) & Q(cost_accounting=set_cost.cost_accounting))
         if self.next_year_again is not None:
             set_cost = classloaditem.setcost_set.filter(year=self.next_year_again).first()
             if set_cost is None:
                 set_cost = classloaditem.create_new_cost(year=self.next_year_again)
             query_budget.append(~Q(code=revenue_account) & Q(cost_accounting=set_cost.cost_accounting))
         line__current_dep, subtotal1, subtotal2, subtotalb = self.fill_part_of_grid(current_request, query_budget, line_idx, str(classloaditem), sign_value=False)
         line_idx = line__current_dep + 1
         total1 += subtotal1
         total2 += subtotal2
         totalb[0] += subtotalb[0]
         if self.next_year is not None:
             totalb[1] += subtotalb[1]
         if self.next_year_again is not None:
             totalb[2] += subtotalb[2]
     add_cell_in_grid(self.grid, line_idx, 'design', get_spaces(5) + "{[b]}%s{[/b]}" % _('total'))
     add_cell_in_grid(self.grid, line_idx, 'year_n', total1, "{[b]}%s{[/b]}")
     add_cell_in_grid(self.grid, line_idx, 'budget_n', totalb[0], "{[b]}%s{[/b]}")
     if self.item.last_fiscalyear is not None:
         add_cell_in_grid(self.grid, line_idx, 'year_n_1', total2, "{[b]}%s{[/b]}")
     if self.next_year is not None:
         add_cell_in_grid(self.grid, line_idx, 'budget_n1', totalb[1], "{[b]}%s{[/b]}")
     if self.next_year_again is not None:
         add_cell_in_grid(self.grid, line_idx, 'budget_n2', totalb[2], "{[b]}%s{[/b]}")
Ejemplo n.º 41
0
def get_condo_system():
    from lucterios.CORE.parameters import Params
    complete_name = Params.getvalue("accounting-system")
    sys_list = condo_system_list()
    if complete_name in sys_list.keys():
        modules_long = sys_list[complete_name].split('.')
        module_name = ".".join(modules_long[:-1])
        class_name = modules_long[-1]
        try:
            module_sys = import_module(module_name)
            class_sys = getattr(module_sys, class_name)
            return class_sys()
        except (ImportError, AttributeError):
            pass
    from diacamma.condominium.system.default import DefaultSystemCondo
    return DefaultSystemCondo()
Ejemplo n.º 42
0
def comptenofound_condo(known_codes, accompt_returned):
    if Params.getvalue("condominium-old-accounting"):
        account_filter = Q(name='condominium-default-owner-account')
        set_unknown = Set.objects.exclude(revenue_account__in=known_codes).values_list('revenue_account', flat=True)
    else:
        account_filter = Q(name='condominium-default-owner-account1') | Q(name='condominium-default-owner-account2') | Q(name='condominium-default-owner-account3') | Q(name='condominium-default-owner-account4')
        set_unknown = []
    param_unknown = Parameter.objects.filter(account_filter).exclude(value__in=known_codes).values_list('value', flat=True)
    comptenofound = ""
    if (len(set_unknown) > 0):
        comptenofound = _("set") + ":" + ",".join(set(set_unknown)) + " "
    if (len(param_unknown) > 0):
        comptenofound += _("parameters") + ":" + ",".join(set(param_unknown))
    if comptenofound != "":
        accompt_returned.append("- {[i]}{[u]}%s{[/u]}: %s{[/i]}" % (_('Condominium'), comptenofound))
    return True
Ejemplo n.º 43
0
 def edit(self, xfer):
     type_call = xfer.get_components('type_call')
     type_call.set_select(
         current_system_condo().get_callfunds_list(complete=False))
     type_call.set_action(xfer.request,
                          xfer.return_action(),
                          close=CLOSE_NO,
                          modal=FORMTYPE_REFRESH)
     set_comp = xfer.get_components('set')
     if int(self.item.type_call) == CallDetail.TYPECALL_EXCEPTIONAL:
         type_load = 1
     else:
         type_load = 0
     set_list = Set.objects.filter(is_active=True, type_load=type_load)
     if len(set_list) == 0:
         raise LucteriosException(IMPORTANT,
                                  _('No category of charge defined!'))
     set_comp.set_needed(True)
     set_comp.set_select_query(set_list)
     set_comp.set_action(xfer.request,
                         xfer.return_action(),
                         close=CLOSE_NO,
                         modal=FORMTYPE_REFRESH)
     xfer.get_components('price').prec = Params.getvalue(
         "accounting-devise-prec")
     set_comp.get_json()
     current_set = Set.objects.get(id=set_comp.value)
     if current_set.type_load == Set.TYPELOAD_CURRENT:
         if int(self.item.type_call) == CallDetail.TYPECALL_CURRENT:
             xfer.get_components(
                 'price').value = current_set.get_new_current_callfunds()
         elif int(self.item.type_call) == CallDetail.TYPECALL_FUNDFORWORK:
             xfer.get_components(
                 'price').value = current_set.get_current_budget() * 0.05
         else:
             xfer.get_components('price').value = 0.0
     elif current_set.type_load == Set.TYPELOAD_EXCEPTIONAL:
         already_called = 0.0
         call_details = CallDetail.objects.filter(set_id=set_comp.value)
         if self.item.id is not None:
             call_details = call_details.exclude(id=self.item.id)
         for detail in call_details:
             already_called += float(detail.price)
         xfer.get_components('price').value = max(
             0,
             float(current_set.get_current_budget()) -
             float(already_called))
Ejemplo n.º 44
0
 def fill_dlg(self):
     self.item.can_be_valid()
     dlg = self.create_custom()
     dlg.item = self.item
     img = XferCompImage('img')
     img.set_value(self.icon_path())
     img.set_location(0, 0, 1, 3)
     dlg.add_component(img)
     lbl = XferCompLabelForm('title')
     lbl.set_value_as_title(self.caption)
     lbl.set_location(1, 0, 6)
     dlg.add_component(lbl)
     dlg.fill_from_model(1, 1, True, ['activity', 'date'])
     dlg.get_components('activity').colspan = 3
     dlg.get_components('date').colspan = 3
     lbl = XferCompLabelForm('sep')
     lbl.set_value("{[hr/]}")
     lbl.set_location(0, 4, 7)
     dlg.add_component(lbl)
     row_id = 5
     for participant in self.item.participant_set.all():
         lbl = XferCompLabelForm('name_%d' % participant.id)
         lbl.set_value_as_name(six.text_type(participant))
         lbl.set_location(0, row_id)
         dlg.add_component(lbl)
         lbl = XferCompLabelForm('current_%d' % participant.id)
         lbl.set_value(participant.current_degree)
         lbl.set_location(1, row_id)
         dlg.add_component(lbl)
         sel = XferCompSelect('degree_%d' % participant.id)
         sel.set_select_query(participant.allow_degree())
         sel.set_location(2, row_id)
         dlg.add_component(sel)
         if Params.getvalue("event-subdegree-enable") == 1:
             sel = XferCompSelect('subdegree_%d' % participant.id)
             sel.set_select_query(participant.allow_subdegree())
             sel.set_location(3, row_id)
             dlg.add_component(sel)
         edt = XferCompMemo('comment_%d' % participant.id)
         edt.set_value(participant.comment)
         edt.set_location(4, row_id)
         dlg.add_component(edt)
         row_id += 1
     dlg.add_action(self.get_action(TITLE_OK, "images/ok.png"),
                    close=CLOSE_YES,
                    params={'CONFIRME': 'YES'})
     dlg.add_action(WrapAction(TITLE_CANCEL, 'images/cancel.png'))
Ejemplo n.º 45
0
    def edit(self, xfer):
        if xfer.item.id is None:
            sel = XferCompSelect('third')
            sel.needed = True
            sel.description = _('third')
            sel.set_location(1, 0)
            owner_third_ids = []
            for owner in Owner.objects.all():
                owner_third_ids.append(owner.third_id)
            items = Third.objects.all().exclude(
                id__in=owner_third_ids).distinct()
            items = sorted(items, key=lambda t: six.text_type(t))
            sel.set_select_query(items)
            xfer.add_component(sel)
            btn = XferCompButton('add_third')
            btn.set_location(3, 0)
            btn.set_is_mini(True)
            btn.set_action(
                xfer.request,
                ActionsManage.get_action_url('accounting.Third', 'Add', xfer),
                close=CLOSE_NO,
                modal=FORMTYPE_MODAL,
                params={
                    'new_account':
                    Params.getvalue('condominium-default-owner-account')
                })
            xfer.add_component(btn)
            xfer.filltab_from_model(1,
                                    xfer.get_max_row() + 1, False,
                                    ["information"])
        else:
            old_item = xfer.item
            xfer.item = old_item.third.contact.get_final_child()
            xfer.filltab_from_model(1, 0, False, xfer.item.get_edit_fields())
            CustomField.edit_fields(xfer, 1)

            xfer.item = old_item.third.get_final_child()
            xfer.filltab_from_model(1,
                                    xfer.get_max_row() + 1, False,
                                    xfer.item.get_edit_fields())
            CustomField.edit_fields(xfer, 1)

            xfer.item = old_item
            xfer.filltab_from_model(1,
                                    xfer.get_max_row() + 1, False,
                                    ["information"])
Ejemplo n.º 46
0
    def test_params(self):
        self.factory.xfer = EventConf()
        self.calljson('/diacamma.event/eventConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.event', 'eventConf')
        self.assert_count_equal('', 2 + 2 + 2 + 7)
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Diplôme')
        self.assert_json_equal('TAB', '__tab_3', 'Sous-diplôme')
        self.assertFalse('__tab_4' in self.json_data.keys(), self.json_data.keys())
        self.assert_json_equal('LABELFORM', 'event-degree-text', 'Diplôme')
        self.assert_json_equal('LABELFORM', 'event-subdegree-text', 'Sous-diplôme')

        Parameter.change_value("event-degree-text", 'Grade')
        Parameter.change_value("event-subdegree-text", 'Barette')
        Params.clear()

        self.factory.xfer = EventConf()
        self.calljson('/diacamma.event/eventConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.event', 'eventConf')
        self.assert_count_equal('', 2 + 2 + 2 + 7)
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Grade')
        self.assert_json_equal('TAB', '__tab_3', 'Barette')
        self.assertFalse('__tab_4' in self.json_data.keys(), self.json_data.keys())
        self.assert_json_equal('LABELFORM', 'event-degree-text', 'Grade')
        self.assert_json_equal('LABELFORM', 'event-subdegree-text', 'Barette')
        self.assert_json_equal('LABELFORM', 'event-subdegree-enable', 'Oui')
        self.assert_json_equal('LABELFORM', 'event-degree-enable', 'Oui')

        Parameter.change_value("event-subdegree-enable", 0)
        Params.clear()

        self.factory.xfer = EventConf()
        self.calljson('/diacamma.event/eventConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.event', 'eventConf')
        self.assert_count_equal('', 2 + 2 + 7)
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Grade')
        self.assertFalse('__tab_3' in self.json_data.keys(), self.json_data.keys())
        self.assert_json_equal('LABELFORM', 'event-subdegree-enable', 'Non')
        self.assert_json_equal('LABELFORM', 'event-degree-enable', 'Oui')

        Parameter.change_value("event-degree-enable", 0)
        Params.clear()

        self.factory.xfer = EventConf()
        self.calljson('/diacamma.event/eventConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.event', 'eventConf')
        self.assert_count_equal('', 2 + 7)
        self.assertFalse('__tab_2' in self.json_data.keys(), self.json_data.keys())
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('LABELFORM', 'event-subdegree-enable', 'Non')
        self.assert_json_equal('LABELFORM', 'event-degree-enable', 'Non')
Ejemplo n.º 47
0
 def fill_third_convert(self, dlg):
     lbl = XferCompLabelForm('tle_third')
     lbl.set_value(_('How do want to convert owner third account?'))
     lbl.set_location(0, 0, 2)
     dlg.add_component(lbl)
     select_account = [('', None)]
     for num_account in range(1, 6):
         owner_account = correct_accounting_code(Params.getvalue('condominium-default-owner-account%d' % num_account))
         select_account.append((owner_account, owner_account))
     row = 1
     for code_item in AccountThird.objects.filter(code__regex=r"^45[0-9a-zA-Z]*$", third__status=0).values_list('code').distinct():
         sel = XferCompSelect('code_' + code_item[0])
         sel.set_location(0, row)
         sel.description = code_item[0]
         sel.set_value(dlg.getparam('code_' + code_item[0], ""))
         sel.set_select(select_account)
         dlg.add_component(sel)
         row += 1
Ejemplo n.º 48
0
 def edit(self, xfer):
     IndividualEditor.edit(self, xfer)
     birthday = xfer.get_components('birthday')
     if birthday is not None:
         birthday.needed = True
     if (self.item.id is None) and (xfer.getparam(
             'legal_entity',
             0) == 0) and (Params.getobject("member-family-type")
                           is not None):
         genre = xfer.get_components('genre')
         genre.colspan -= 1
         btn = XferCompButton('famillybtn')
         btn.set_location(genre.col + genre.colspan, genre.row)
         btn.set_action(xfer.request,
                        ActionsManage.get_action_url(
                            'member.Adherent', 'familyAdherentAdd', xfer),
                        modal=FORMTYPE_MODAL,
                        close=CLOSE_YES)
         xfer.add_component(btn)
Ejemplo n.º 49
0
 def fillresponse(self):
     XferListEditor.fillresponse(self)
     self.new_tab(_("Log setting"))
     row = self.get_max_row() + 1
     sel = XferCompCheckList('AuditLogSetting')
     sel.simple = 2
     sel.set_select(Signal.get_packages_of_signal('auditlog_register'))
     sel.set_value(Params.getvalue('CORE-AuditLog').split())
     sel.set_location(1, row, 3)
     sel.description = _('settings')
     self.add_component(sel)
     btn = XferCompButton('ChangeAL')
     btn.set_action(self.request,
                    AudiLogChange.get_action(TITLE_MODIFY,
                                             "images/edit.png"),
                    modal=FORMTYPE_MODAL,
                    close=CLOSE_NO)
     btn.set_location(2, row + 1)
     self.add_component(btn)
Ejemplo n.º 50
0
 def save(self,
          force_insert=False,
          force_update=False,
          using=None,
          update_fields=None):
     if (self.id is None) and (self.event.event_type == 0) and (
         (self.comment is None) or (self.comment == '')):
         self.comment = Params.getvalue("event-comment-text")
     if (self.id is None) and self.is_subscripter and (
             self.event.default_article is not None):
         self.article = self.event.default_article
     if (self.id is None) and not self.is_subscripter and (
             self.event.default_article_nomember is not None):
         self.article = self.event.default_article_nomember
     return LucteriosModel.save(self,
                                force_insert=force_insert,
                                force_update=force_update,
                                using=using,
                                update_fields=update_fields)
Ejemplo n.º 51
0
 def add_email_selector(self, xfer, col, row, colspan):
     contacts_list = xfer.items.exclude(email__isnull=True).exclude(email__exact='')
     if len(contacts_list) < 100:
         mailto_type = Params.getvalue("contacts-mailtoconfig")
         email_list = []
         for item in contacts_list:
             email_list.append(six.text_type(item.email))
         if len(email_list) > 0:
             link = XferCompLinkLabel('emailAll')
             link.set_value_center(_('Write to all'))
             if mailto_type == 1:  # CC
                 mailto_prefix = 'mailto:?cc='
             elif mailto_type == 2:  # BCC
                 mailto_prefix = 'mailto:?bcc='
             else:  # TO
                 mailto_prefix = 'mailto:'
             link.set_link(mailto_prefix + ','.join(email_list))
             link.set_location(col, row, colspan)
             xfer.add_component(link)
Ejemplo n.º 52
0
def finalizeyear_condo(xfer):
    year = FiscalYear.get_current(xfer.getparam('year'))
    if year is not None:
        ventilate = xfer.getparam("ventilate", 0)
        if xfer.observer_name == "core.custom":
            if year.check_to_close() > 0:
                raise LucteriosException(
                    IMPORTANT, _("This fiscal year has entries not closed!"))
            result = year.total_revenue - year.total_expense
            if abs(result) > 0.001:
                row = xfer.get_max_row() + 1
                lbl = XferCompLabelForm('title_condo')
                lbl.set_value(
                    _('This fiscal year has a result no null equals to %s.') %
                    get_amount_from_format_devise(result, 7))
                lbl.set_location(0, row, 2)
                xfer.add_component(lbl)
                lbl = XferCompLabelForm('question_condo')
                lbl.set_value(_('Where do you want to ventilate this amount?'))
                lbl.set_location(0, row + 1)
                xfer.add_component(lbl)
                sel_cmpt = [('0', _("For each owner"))]
                for account in year.chartsaccount_set.filter(
                        type_of_account=2).order_by('code'):
                    sel_cmpt.append((account.id, str(account)))
                sel = XferCompSelect("ventilate")
                sel.set_select(sel_cmpt)
                sel.set_value(ventilate)
                sel.set_location(1, row + 1)
                xfer.add_component(sel)
        elif xfer.observer_name == "core.acknowledge":
            Owner.ventilate_pay_all(year.begin, year.end)
            for set_cost in year.setcost_set.filter(year=year,
                                                    set__is_active=True,
                                                    set__type_load=0):
                if ventilate == 0:
                    current_system_condo().ventilate_costaccounting(
                        year, set_cost.set, set_cost.cost_accounting,
                        DEFAULT_ACCOUNT_CURRENT,
                        Params.getvalue("condominium-current-revenue-account"))
                set_cost.cost_accounting.close()
            current_system_condo().ventilate_result(year, ventilate)
Ejemplo n.º 53
0
def summary_condo(xfer):
    if not hasattr(xfer, 'add_component'):
        return WrapAction.is_permission(xfer, 'condominium.change_set')
    else:
        if WrapAction.is_permission(xfer.request, 'condominium.change_set'):
            row = xfer.get_max_row() + 1
            lab = XferCompLabelForm('condotitle')
            lab.set_value_as_infocenter(_('Condominium'))
            lab.set_location(0, row, 4)
            xfer.add_component(lab)
            nb_set = len(Set.objects.filter(is_active=True))
            nb_owner = len(Owner.objects.all())
            lab = XferCompLabelForm('condoinfo')
            lab.set_value_as_header(_("There are %(set)d classes of loads for %(owner)d owners") % {'set': nb_set, 'owner': nb_owner})
            lab.set_location(0, row + 1, 4)
            xfer.add_component(lab)
            if Params.getvalue("condominium-old-accounting"):
                lab = XferCompLabelForm('condoconvinfo')
                lab.set_value_as_header(_("Your condominium account is not in respect of French law{[newline]}An conversion is necessary."))
                lab.set_color('red')
                lab.set_location(0, row + 2, 4)
                xfer.add_component(lab)
                btn = XferCompButton('condoconv')
                btn.set_location(0, row + 3, 4)
                btn.set_action(xfer.request, CondominiumConvert.get_action(_('Convertion ...'), ""), close=CLOSE_NO)
                xfer.add_component(btn)
            if hasattr(settings, "DIACAMMA_MAXOWNER"):
                lbl = XferCompLabelForm("limit_owner")
                lbl.set_value(_('limitation: %d owners allowed') % getattr(settings, "DIACAMMA_MAXOWNER"))
                lbl.set_italic()
                lbl.set_location(0, row + 4, 4)
                xfer.add_component(lbl)
            row = xfer.get_max_row() + 1
            lab = XferCompLabelForm('condosep')
            lab.set_value_as_infocenter("{[hr/]}")
            lab.set_location(0, row, 4)
            xfer.add_component(lab)
            return True
        else:
            return False
Ejemplo n.º 54
0
 def fill_body(self):
     line_idx = 0
     total1 = 0
     total2 = 0
     totalb = [0]
     revenue_account = Params.getvalue(
         "condominium-exceptional-revenue-account")
     for classloaditem in Set.objects.filter(type_load=1, is_active=True):
         current_request = Q(account__code__regex=current_system_account().
                             get_expence_mask())
         current_request |= Q(account__code__regex=current_system_account(
         ).get_revenue_mask()) & ~Q(account__code=revenue_account)
         current_request &= Q(costaccounting__setcost__set=classloaditem)
         query_budget = [
             ~Q(code=revenue_account)
             & Q(cost_accounting=classloaditem.current_cost_accounting)
             & Q(year=self.item)
         ]
         line__current_dep, subtotal1, subtotal2, subtotalb = self.fill_part_of_grid(
             current_request,
             query_budget,
             line_idx,
             six.text_type(classloaditem),
             sign_value=False)
         total_call = classloaditem.get_total_calloffund(self.item)
         add_cell_in_grid(self.grid, line__current_dep - 1, 'calloffund',
                          "{[u]}%s{[/u]}" % format_devise(total_call, 5))
         add_cell_in_grid(
             self.grid, line__current_dep - 1, 'result',
             "{[u]}%s{[/u]}" % format_devise(total_call - subtotal1, 5))
         line_idx = line__current_dep + 1
         total1 += subtotal1
         total2 += subtotal2
         totalb[0] += subtotalb[0]
     add_cell_in_grid(self.grid, line_idx, 'design',
                      get_spaces(5) + "{[b]}%s{[/b]}" % _('total'))
     add_cell_in_grid(self.grid, line_idx, 'year_n',
                      "{[b]}%s{[/b]}" % format_devise(total1, 5))
     add_cell_in_grid(self.grid, line_idx, 'budget_n',
                      "{[b]}%s{[/b]}" % format_devise(totalb[0], 5))
Ejemplo n.º 55
0
def default_setowner_fr(with_lots=True):
    RecoverableLoadRatio.objects.create(code='602', ratio=60)
    RecoverableLoadRatio.objects.create(code='604', ratio=40)

    if Params.getvalue("condominium-old-accounting"):
        create_account(['450'], 0, FiscalYear.get_current())
    else:
        create_account(['4501', '4502', '4503', '4504', '4505'], 0,
                       FiscalYear.get_current())  # 17 18 19 20 21
    create_account(['120', '103', '105'], 2,
                   FiscalYear.get_current())  # 22 23 24
    create_account(['702', '705'], 3, FiscalYear.get_current())  # 25 26
    set1 = Set.objects.create(name="AAA",
                              budget=1000,
                              revenue_account='701',
                              is_link_to_lots=with_lots,
                              type_load=0)
    _set_budget(set1, '604', 1000)
    set2 = Set.objects.create(name="BBB",
                              budget=100,
                              revenue_account='701',
                              type_load=0)
    _set_budget(set2, '604', 100)
    set3 = Set.objects.create(name="CCC",
                              budget=500,
                              revenue_account='702',
                              type_load=1)
    _set_budget(set3, '604', 500)
    set4 = Set.objects.create(name="OLD",
                              budget=100,
                              revenue_account='702',
                              type_load=1,
                              is_active=False)
    _set_budget(set4, '602', 100)
    _create_owners(set1, set2, set3, set4, with_lots)
    Owner.check_all_account()
Ejemplo n.º 56
0
def send_email(recipients,
               subject,
               body,
               files=None,
               cclist=None,
               bcclist=None,
               withcopy=False,
               body_txt=None):
    from lucterios.CORE.parameters import Params
    from lucterios.contacts.models import LegalEntity
    smtp_server = Params.getvalue('mailing-smtpserver')
    smtp_port = Params.getvalue('mailing-smtpport')
    smtp_user = Params.getvalue('mailing-smtpuser')
    smtp_pass = Params.getvalue('mailing-smtppass')
    smtp_security = Params.getvalue('mailing-smtpsecurity')
    sender_obj = LegalEntity.objects.get(id=1)
    sender_name = sender_obj.name
    sender_email = sender_obj.email
    if (sender_email == '') or ((smtp_server == '') and (smtp_security != 3)):
        raise EmailException(_('Email not configure!'))
    if recipients is None:
        recipients = sender_email
    if not isinstance(recipients, list):
        recipients = [six.text_type(recipients)]
    recipients = split_doubled_email(recipients)
    dkim_private_path = Params.getvalue('mailing-dkim-private-path')
    dkim_selector = Params.getvalue('mailing-dkim-selector')
    if withcopy:
        if bcclist is None:
            bcclist = []
        if sender_email not in bcclist:
            bcclist.append(sender_email)
    email_server = get_email_server(smtp_security, smtp_server, smtp_port,
                                    smtp_user, smtp_pass)
    return sending_email(recipients, sender_name, sender_email, subject, body,
                         body_txt, files, cclist, bcclist, email_server,
                         dkim_private_path, dkim_selector)
Ejemplo n.º 57
0
    def test_params(self):
        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 3 + 2)
        self.assertFalse('__tab_5' in self.json_data.keys(),
                         self.json_data.keys())
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Âge')
        self.assert_json_equal('TAB', '__tab_3', 'Équipe')
        self.assert_json_equal('TAB', '__tab_4', 'Activité')
        self.assert_json_equal('LABELFORM', 'member-team-text', 'Équipe')
        self.assert_json_equal('LABELFORM', 'member-activite-text', 'Activité')
        self.assert_json_equal(
            'LABELFORM', 'member-fields',
            "N°{[br/]}prénom{[br/]}nom{[br/]}tel1{[br/]}tel2{[br/]}courriel{[br/]}participation"
        )
        self.assert_json_equal('', '#editparam/action/action',
                               'categoryParamEdit')

        self.factory.xfer = CategoryParamEdit()
        self.calljson(
            '/diacamma.member/categoryParamEdit', {
                'params':
                ";".join([
                    "member-team-enable", "member-team-text",
                    "member-activite-enable", "member-activite-text",
                    "member-age-enable", "member-licence-enabled",
                    "member-filter-genre", "member-numero", "member-birth",
                    "member-family-type", "member-connection",
                    "member-subscription-mode", "member-size-page",
                    "member-fields", "member-subscription-message"
                ])
            }, False)
        self.assert_observer('core.custom', 'diacamma.member',
                             'categoryParamEdit')
        self.assert_json_equal('SELECT', 'member-size-page', '25')
        self.assert_select_equal('member-size-page', 5)
        self.assert_json_equal('CHECKLIST', 'member-fields', [
            'num', 'firstname', 'lastname', 'tel1', 'tel2', 'email', 'license'
        ])
        self.assert_select_equal('member-fields', 17, checked=True)

        Parameter.change_value("member-team-text", 'Cours')
        Parameter.change_value("member-activite-text", 'Sport')
        Parameter.change_value("member-fields",
                               "firstname;lastname;email;documents")
        Params.clear()

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 3 + 2)
        self.assertFalse('__tab_5' in self.json_data.keys(),
                         self.json_data.keys())
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Âge')
        self.assert_json_equal('TAB', '__tab_3', 'Cours')
        self.assert_json_equal('TAB', '__tab_4', 'Sport')
        self.assert_json_equal('LABELFORM', 'member-team-text', 'Cours')
        self.assert_json_equal('LABELFORM', 'member-activite-text', 'Sport')
        self.assert_json_equal(
            'LABELFORM', 'member-fields',
            "prénom{[br/]}nom{[br/]}courriel{[br/]}documents demandés")
Ejemplo n.º 58
0
    def test_age(self):
        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 3 + 2)
        self.assert_grid_equal('age', {
            'name': "nom",
            'date_min': "date min.",
            'date_max': "date max."
        }, 0)

        self.factory.xfer = AgeAddModify()
        self.calljson('/diacamma.member/ageAddModify', {}, False)
        self.assert_observer('core.exception', 'diacamma.member',
                             'ageAddModify')

        default_season()

        self.factory.xfer = AgeAddModify()
        self.calljson('/diacamma.member/ageAddModify', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'ageAddModify')
        self.assert_count_equal('', 4)

        self.factory.xfer = AgeAddModify()
        self.calljson('/diacamma.member/ageAddModify', {
            "SAVE": "YES",
            "name": "xyz",
            "date_min": "1981",
            "date_max": "1980"
        }, False)
        self.assert_observer('core.exception', 'diacamma.member',
                             'ageAddModify')

        self.factory.xfer = AgeAddModify()
        self.calljson('/diacamma.member/ageAddModify', {
            "SAVE": "YES",
            "name": "xyz",
            "date_min": "1980",
            "date_max": "1981"
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member',
                             'ageAddModify')
        self.factory.xfer = AgeAddModify()
        self.calljson('/diacamma.member/ageAddModify', {
            "SAVE": "YES",
            "name": "uvw",
            "date_min": "1979",
            "date_max": "1980"
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member',
                             'ageAddModify')

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('age', 2)
        self.assert_json_equal('', 'age/@0/name', "uvw")
        self.assert_json_equal('', 'age/@0/date_min', "1979")
        self.assert_json_equal('', 'age/@0/date_max', "1980")
        self.assert_json_equal('', 'age/@1/name', "xyz")
        self.assert_json_equal('', 'age/@1/date_min', "1980")
        self.assert_json_equal('', 'age/@1/date_max', "1981")

        self.factory.xfer = SeasonActive()
        self.calljson('/diacamma.member/seasonActive', {'season': 12}, False)
        self.assert_observer('core.acknowledge', 'diacamma.member',
                             'seasonActive')

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('age', 2)
        self.assert_json_equal('', 'age/@0/name', "uvw")
        self.assert_json_equal('', 'age/@0/date_min', "1981")
        self.assert_json_equal('', 'age/@0/date_max', "1982")
        self.assert_json_equal('', 'age/@1/name', "xyz")
        self.assert_json_equal('', 'age/@1/date_min', "1982")
        self.assert_json_equal('', 'age/@1/date_max', "1983")
        self.assert_json_equal('LABELFORM', 'member-age-enable', 'Oui')

        self.factory.xfer = AgeDel()
        self.calljson('/diacamma.member/ageDel', {
            "CONFIRME": "YES",
            "age": 1
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member', 'ageDel')

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('age', 1)

        Parameter.change_value("member-age-enable", '0')
        Params.clear()

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 0 + 3 + 2)
        self.assert_json_equal('LABELFORM', 'member-age-enable', 'Non')
        self.assertFalse('__tab_4' in self.json_data.keys(),
                         self.json_data.keys())
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Équipe')
        self.assert_json_equal('TAB', '__tab_3', 'Activité')
Ejemplo n.º 59
0
    def test_team(self):
        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 3 + 2)
        self.assert_grid_equal('team', {
            'name': "nom",
            'description': "description"
        }, 0)

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf',
                      {'show_only_enabled_team': False}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 3 + 2)
        self.assert_grid_equal('team', {
            'name': "nom",
            'description': "description",
            'unactive': "désactivé"
        }, 0)

        self.factory.xfer = TeamAddModify()
        self.calljson('/diacamma.member/teamAddModify', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'teamAddModify')
        self.assert_count_equal('', 4)

        self.factory.xfer = TeamAddModify()
        self.calljson('/diacamma.member/teamAddModify', {
            "SAVE": "YES",
            "name": "xyz",
            "description": "abc",
            'unactive': 0
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member',
                             'teamAddModify')

        self.factory.xfer = TeamAddModify()
        self.calljson('/diacamma.member/teamAddModify', {
            "SAVE": "YES",
            "name": "uvw",
            "description": "def",
            'unactive': 1
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member',
                             'teamAddModify')

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf',
                      {'show_only_enabled_team': False}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('team', 2)
        self.assert_json_equal('', 'team/@0/name', "uvw")
        self.assert_json_equal('', 'team/@0/unactive', True)
        self.assert_json_equal('', 'team/@1/name', "xyz")
        self.assert_json_equal('', 'team/@1/unactive', False)

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf',
                      {'show_only_enabled_team': True}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('team', 1)
        self.assert_json_equal('', 'team/@0/name', "xyz")

        self.factory.xfer = TeamDel()
        self.calljson('/diacamma.member/teamDel', {
            "CONFIRME": "YES",
            "team": 1
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member', 'teamDel')

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('team', 0)

        Parameter.change_value("member-team-enable", '0')
        Params.clear()

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 0 + 2)
        self.assert_json_equal('LABELFORM', 'member-team-enable', 'Non')
        self.assertFalse('__tab_4' in self.json_data.keys(),
                         self.json_data.keys())
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Âge')
        self.assert_json_equal('TAB', '__tab_3', 'Activité')
Ejemplo n.º 60
0
    def test_activity(self):
        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 3 + 2)
        self.assert_grid_equal('activity', {
            'name': "nom",
            'description': "description"
        }, 1)

        self.factory.xfer = ActivityAddModify()
        self.calljson('/diacamma.member/activityAddModify', {}, False)
        self.assert_observer('core.custom', 'diacamma.member',
                             'activityAddModify')
        self.assert_count_equal('', 3)

        self.factory.xfer = ActivityAddModify()
        self.calljson('/diacamma.member/activityAddModify', {
            "SAVE": "YES",
            "name": "xyz",
            "description": "abc"
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member',
                             'activityAddModify')

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('activity', 2)
        self.assert_json_equal('', 'activity/@1/name', "xyz")

        self.factory.xfer = ActivityDel()
        self.calljson('/diacamma.member/activityDel', {
            "CONFIRME": "YES",
            "activity": 2
        }, False)
        self.assert_observer('core.acknowledge', 'diacamma.member',
                             'activityDel')

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('activity', 1)

        self.factory.xfer = ActivityDel()
        self.calljson('/diacamma.member/activityDel', {
            "CONFIRME": "YES",
            "activity": 1
        }, False)
        self.assert_observer('core.exception', 'diacamma.member',
                             'activityDel')

        Parameter.change_value("member-activite-enable", '0')
        Params.clear()

        self.factory.xfer = CategoryConf()
        self.calljson('/diacamma.member/categoryConf', {}, False)
        self.assert_observer('core.custom', 'diacamma.member', 'categoryConf')
        self.assert_count_equal('', 2 + 13 + 2 + 3 + 0)
        self.assert_json_equal('LABELFORM', 'member-activite-enable', 'Non')
        self.assert_json_equal('TAB', '__tab_1', 'Paramètres')
        self.assert_json_equal('TAB', '__tab_2', 'Âge')
        self.assert_json_equal('TAB', '__tab_3', 'Équipe')
        self.assertFalse('__tab_4' in self.json_data.keys(),
                         self.json_data.keys())