User Tools

Site Tools


infra:services:hula

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
infra:services:hula [2025/01/14 21:03] – created kfhinfra:services:hula [2026/02/03 09:29] (current) atluxity_idp.hackeriet.no
Line 1: Line 1:
-Hacker-hula+====== Hacker-hula ======
  
  
-## Maintenance 
  
-### Updating the software+==== Maintenance =====
  
-``` bash + 
-Go to the checkout as `hackerhula` via `root`+=== Updating the software === 
 + 
 +Go to the checkout as `hackerhula` via `root` 
 +<code>
 sudo su - sudo su -
 su - hackerietweb -s /bin/bash su - hackerietweb -s /bin/bash
 cd /srv/webapp-hackerhula/new/hackerhula/ cd /srv/webapp-hackerhula/new/hackerhula/
 git pull git pull
 +</code>
  
-If you've made migrations, run this+If you've made migrations, run this 
 +<code>
 poetry run ./manage.py migrate poetry run ./manage.py migrate
 +</code>
 +
 +If you've changed static files, run this
 +<code>poetry run ./manage.py collectstatic</code>
 +
 +Back to root we go
 +<code>^D</code>
 +
 +Restart the appserver
 +<code>systemctl restart gunicorn-hula.service</code>
 +and bob's your uncle
 +
 +
 +==== Payment status =====
 +
 +As of 2025-12-28 there is a high likelyhood of mistakes or error in the data entering the payment status database. We currently have no good place to track these issues currently. TODO for styret
 +
 +The current logical flow of data is 
 +<code>
 +       +----------------------+        
 +                            |        
 +        Member bank account |        
 +                            |        
 +       +----------+-----------+        
 +                  |                    
 +                  v                    
 +      +------------------------+       
 +      |                        |       
 +      | Hackeriet bank account |       
 +      |        (Cultura)             
 +      |                        |       
 +      +-----------+------------+       
 +                  |                    
 +                  v                    
 +        +-------------------+          
 +        |                            
 +        | Accounting system |          
 +        |      (Fiken)      |          
 +        |                            
 +        +---------+---------+          
 +                  |                    
 +                  v                    
 +     +-------------------------+       
 +                                   
 +     | API export to JSON file |       
 +                                   
 +     +------------+------------+       
 +                  |                    
 +                  v                    
 ++-------------------------------------+
 +|                                     |
 +| Import to Hula DB via manual script |
 +|                                     |
 ++-------------------------------------+
 +</code>
 +
 +If there is a mistake in any point in the chain, it can look like payment is missing. Maybe the member has changed bank account since customer ID in accounting system was correlated to hula? Maybe finance officer has not done quality work in the accounting system? Maybe a manual sync of payment status has not been performed for a while, so recent payments are not showing yet?
 +
 +=== How to perform an API export to JSON file for sync of payment status ===
 +
 +See also https://github.com/hackeriet/fiken-hula
 +
 +<code>
 +atluxity@hostname: git$ gh repo clone hackeriet/fiken-hula
 +atluxity@hostname: git$ cd fiken-hula/
 +atluxity@hostname: fiken-hula$ echo FIKEN_API=\"$(hackerpass fiken/api)\" > .env
 +atluxity@hostname: fiken-hula$ source env/bin/activate
 +(env) atluxity@hostname: fiken-hula$ pip install -r requirements.txt 
 +(env) atluxity@hostname: fiken-hula$ python dump_all_sales.py > $(date +%Y-%d-%m)-all-sales.json
 +</code>
 +
 +You now have a json file! Next step is possible. TAKE CARE, there is currently too much PII in the file. Do not leave it unattented.
 +
 +=== How to Import to Hula DB via manual script ===
 +
 +See also https://github.com/hackeriet/hackerhula/blob/master/hackerhula/member/management/commands/sync_fiken.py
 +
 +<code>
 +atluxity@blade:~$ sudo su - hackerietweb -s /bin/bash
 +hackerietweb@blade:~$ cd /srv/webapp-hackerhula/new/hackerhula/
 +hackerietweb@blade:/srv/webapp-hackerhula/new/hackerhula$ poetry shell
 +(hackerhula-py3.11) hackerietweb@blade:/srv/webapp-hackerhula/new/hackerhula$ python3 manage.py sync_fiken /home/atluxity/2025-12-27-fiken-sales.json
 +(hackerhula-py3.11) hackerietweb@blade:/srv/webapp-hackerhula/new/hackerhula$ exit                                    
 +atluxity@blade:~$ rf 2025-12-27-fiken-sales.json
 +</code>
 +
 +TAKE CARE, the json file has too much PII etc, do not leave it unattended.
  
-# If you've changed static files, run this +=== Reporting on payments stored in Hula === 
-poetry run ./manage.py collectstatic+To sanity check, or whatevera small stats command was created to be run in the same way as the sync command above. 
 +<code> 
 +(hackerhula-py3.11) hackerietweb@blade:/srv/webapp-hackerhula/new/hackerhula$ python3 manage.py payments_stats -h 
 +usage: manage.py payments_stats [-h] [--from DATE_FROM] [--to DATE_TO] [--last-months LAST_MONTHS] [--last-1-months] [--last-3-months] [--last-6-months] [--last-12-months] 
 +                                [--format {text,json}] [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color] [--force-color] 
 +                                [--skip-checks]
  
-# Back to root we go +Report payment statistics from the database
-^D+
  
-# Restart the appserver +options: 
-systemctl restart gunicorn-hula.service +  -h, --help            show this help message and exit 
-# and bob'your uncle +  --from DATE_FROM      Start date (YYYY-MM-DD) 
-```+  --to DATE_TO          End date (YYYY-MM-DD) 
 +  --last-months LAST_MONTHS 
 +                        Last N months (e.g. --last-months 3) 
 +  --last-1-months       Preset for last 1 month 
 +  --last-3-months       Preset for last 3 months 
 +  --last-6-months       Preset for last 6 months 
 +  --last-12-months      Preset for last 12 months 
 +  --format {text,json}  Output format (default: text) 
 +  --version             Show program'version number and exit. 
 +  -v {0,1,2,3}, --verbosity {0,1,2,3} 
 +                        Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output 
 +  --settings SETTINGS   The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the DJANGO_SETTINGS_MODULE environment variable will be used. 
 +  --pythonpath PYTHONPATH 
 +                        A directory to add to the Python path, e.g. "/home/djangoprojects/myproject"
 +  --traceback           Raise on CommandError exceptions. 
 +  --no-color            Don't colorize the command output. 
 +  --force-color         Force colorization of the command output. 
 +  --skip-checks         Skip system checks. 
 +</code>
/srv/hackeriet-wiki/dokuwiki/data/attic/infra/services/hula.1736888608.txt.gz · Last modified: by kfh