Coding
Hardware
Supervision
FAQs
Quelques FAQs pour des réponses rapides ne nécessitant pas un article complet. Les FAQs seront complétées au fur et à mesure de mes découvertes.
NginX
-
Comment tuer réellement les processes NginX ?
Utilisateurs de NginX, vous l'aurez remarqué, parfois redémarrer NginX ne suffit pas, des processus NginX continuent de tourner sur votre serveur alors que vous pensiez l'avoir stoppé.
Pour réellement stopper NginX, entrez la commande suivante (root/sudo) sur Debian :
Shell123fuser -k 80/tcpPuis redémarrez NginX avec :
Shell123service nginx restart
jQuery
-
Comment délayer une fonction x secondes après $(document).ready() ?
Vous souhaitez que votre page soit bien complètement chargée avant de modifier un élément CSS ou exécuter une fonction.
Mais mettre votre fonction ou vos modifs CSS dans le $(document).ready() ne suffit parfois pas. Alors vous souhaitez le faire au bout de x millisecondes.Utilisez un Timer comme dans l'exemple ci-dessous!
JavaScript123456789$(document).ready(function () {var timer1;timer1 = setTimeout(function() {$("#ma-div-a-moi").css('display', 'none');clearTimeout(timer1);}, 500);}Ici, 500 ms après le $(document).ready(), la DIV ma-div-a-moi sera masquée.
Vous pouvez mettre n'importe quoi dans votre fonction, et n'oubliez pas de tuer le timer avec clearTimeout() pour ne pas relancer la fonction plusieurs fois.
Ajustez la durée du timer en fonction du chargement de votre page.
OpenERP 7
-
PY : Comment ouvrir une fenêtre à la fin d'une fonction ?
Pour ouvrir une nouvelle fenêtre à la fin d'une fonction, elle doit renvoyer un dictionnaire comme dans l'exemple ci-dessous
Python12345678910111213def make_refund(self, cr, uid, ids, date=None, period_id=None, description=None, journal_id=None, context=None):return {'type': 'ir.actions.act_window', # action qui ouvre une fenetre'name': 'Refund', # nom de la fenetre'res_model': 'account.invoice', # nom de la table'res_id': resource_id, # ID de l'enregistrement à afficher'view_type': 'form', # Vue'view_mode': 'form' # Vues disponibles'target': 'current', # current = fenêtre courante, new = nouvelle fenêtre}
-
PY : Comment arrêter une fonction et afficher un message d'erreur ?
Dans votre fonction Python, vous souhaitez afficher un message d'erreur si une vérification échoue, et bien sûr arrêter la fonction en cours.
Dans cet exemple, si le montant total de la facture (invoice['amount_total']) est inférieur à zéro, l'utilisateur ne pourra pas effectuer le paiement en ligne.Python1234if invoice['amount_total'] < 0:raise osv.except_osv(_('Error!'),_('Online payment cannot be performed with negative amount'))La fonction qui permet cela dans OpenERP 7 :
Python123raise osv.except_osv(_('Titre de la fenêtre'),_('Message d erreur'))Note : Le titre et le message d'erreur seront traduisibles dans OpenERP , grâce à la fonction underscore _('string to translate')
-
XML : Quels sont les widgets que l'on peut utiliser ?
Dans les vues XML, vous pouvez utiliser les widgets ci-dessous pour afficher certaines données :
XHTML1234567891011121314<field name="state" widget="statusbar"/> # Affiche une barre d'état avec les différents status (champ state)<field name="url" widget="url"/> # Affiche un lien href<field name="image_small" widget="image"/> # Affiche une image<field name="create_date" widget="date"/> # Affiche une date Y-m-d<field name="attachment_ids" widget="many2many_binary"/> # Affiche un lien de téléchargement<field name="sequence" widget="handle"/> # Affiche un champ drag&drop pour réordonner le treeview<field name="pos_config_id" widget="selection"/> # Affiche une liste déroulante (sans les option Modifier + créer)<field name="tax_id" widget="many2many_tags"/> # Affiche les données sous forme de Tags<field name="amount_untaxed" widget="monetary"options="{'currency_field': 'currency_id'}"/> # Affiche la valeur monétaire (avec le symbole -> champ currency_field)<field name="product_tmpl_id" widget="id"/> # Affiche l'ID de l'enregistrement (pas le champ name)<field name="default_email_contact" widget="email"/> # Affiche un lien mailto
-
XML Vue Form : Comment retirer le lien (url) des champs one2many ?
Pour qu'un champs one2many dans une vue formulaire ne s'affiche pas comme un lien, il suffit de rajouter l'option suivante dans la vue XML :
XHTML123<field name="company_id" options="{'no_open': true}"/>