diff --git a/src/sakia/gui/dialogs/connection_cfg/controller.py b/src/sakia/gui/dialogs/connection_cfg/controller.py index 749afbc326038f62c996b6a975767a1bf21ab1f5..7cf9a5fb8e5b6ab2e5843d47c796822703634543 100644 --- a/src/sakia/gui/dialogs/connection_cfg/controller.py +++ b/src/sakia/gui/dialogs/connection_cfg/controller.py @@ -68,6 +68,7 @@ class ConnectionConfigController(QObject): app.parameters))) account_cfg = cls(parent, view, model) model.setParent(account_cfg) + view.set_license(app.currency) return account_cfg @classmethod @@ -158,7 +159,8 @@ class ConnectionConfigController(QObject): elif self.mode == ConnectionConfigController.PUBKEY: self._logger.debug("Pubkey mode") self.view.button_next.clicked.connect(self.check_pubkey) - self.view.label_action.setText(self.view.label_action.text() + self.tr(" (Optional)")) + if not self.view.label_action.text().endswidth(self.tr(" (Optional)")): + self.view.label_action.setText(self.view.label_action.text() + self.tr(" (Optional)")) self.view.groupbox_key.hide() self.view.stacked_pages.setCurrentWidget(self.view.page_connection) connection_identity = await self.step_key @@ -293,7 +295,7 @@ Yours : {0}, the network : {1}""".format(registered[1], registered[2]))) if registered[0] is False and registered[2] is None: self.step_key.set_result(None) elif registered[2]: - self.view.display_info(self.tr("""Your pubkey is associated to a pubkey.<br/> + self.view.display_info(self.tr("""Your pubkey is associated to an identity.<br/> Yours : {0}, the network : {1}""".format(registered[1], registered[2]))) except DuniterError as e: diff --git a/src/sakia/gui/dialogs/connection_cfg/view.py b/src/sakia/gui/dialogs/connection_cfg/view.py index 60bfa346a196f112a3cef831be16ffe96dde9a2d..00bdb4357516a04fec721e5bfd552c4a138f410c 100644 --- a/src/sakia/gui/dialogs/connection_cfg/view.py +++ b/src/sakia/gui/dialogs/connection_cfg/view.py @@ -59,6 +59,76 @@ class ConnectionConfigView(QDialog, Ui_ConnectionConfigurationDialog): self.spin_r.blockSignals(False) self.spin_p.blockSignals(False) + def set_license(self, currency): + license_text = self.tr(""" +<H1> License Ğ1 - v0.1 </H1> +<H2> Money licensing and liability commitment. </H2> + +<P> Any certification of a new member of Ğ1 + must first be accompanied by this license of the currency Ğ1 + which the certifier must ensure that it has been studied, + understood and accepted by the person who will be certified. </P> +<H4> Production of Units Ğ1 </h4> +<P> Ğ1 occurs via a Universal Dividend (DU) for any human member, which is of the form: </ p> +<Ul> +<Li> 1 DU per person per day </ li> +</Ul> +<div> +<P> The amount of DU is identical each day until the next equinox, +where the DU will then be reevaluated according to the formula: </p> +</div> +<div> +<ul> +<li> DU <sub> day </sub> (the following equinox) = DU <day> (equinox) + c² (M / N) (equinox) / (15778800 seconds) +</Ul> +</div> +<div> +<P> With as parameters: </p> +</div> +<div> +<Ul> +<Li> c = 4.88% / equinox </li> +<Li> UD (0) = 10.00 Ğ1 </li> +</Ul> +</div> +<div> +<P> And as variables: </p> +</div> +<div> +<Ul> +<Li> <em> M </em> the total monetary mass at the equinox </li> +<Li> <em> N </em> the number of members at the equinox </li> +</Ul> +<div> +<H4>Web of Trust</H4> +</div> +<div> +<P> <strong> Warning: </strong> Certifying is not just about making sure you've met the person, +it's ensuring that the community Ğ1 knows the certified person well enough and Duplicate account +made by a person certified by you, or other types of problems (disappearance ...), +by cross-checking that will reveal the problem if necessary. </P> +</div> +<div> +<P> When you are a member of Ğ1 and you are about to certify a new account: </p> +</div> +<div> +<P> <strong> You are assured: </strong> </p> +</div> +<div> +<P> 1 °) The person who declares to manage this public key (new account) and to have personally verified with him that +it is indeed this Public key you are about to certify. </P> +<P> 2 °) To meet her physically to make sure that it is this person you know who manages this public key. </P> +<P> 3 °) Remotely verify the public person / key link by contacting the person via several different means of communication, +such as social network + forum + mail + video conference + phone (acknowledge voice). </P> +</div> +<div> +<P> Because if you can hack an email account or a forum account, it will be much harder to imagine hacking four distinct + means of communication, and mimic the appearance (video) as well as the voice of the person . </P> +<P> However, the 2 °) is preferable to 3 °, whereas the 1 °) is always indispensable in all cases. </P> +</div> +""") + self.text_license.setText(license_text) + def handle_n_change(self, value): spinbox = self.sender() self.scrypt_params.N = ConnectionConfigView.compute_power_of_2(spinbox, value, self.scrypt_params.N)