Make usable intranet.
- Install a relatively modern version of Python 3 (3.12 is recommended but other versions might also work)
- Install uv, a Python package and project manager
git clone <repo_url>andcdinto the directory- Run
uv sync(if you do not have postgres installed on your local machine, you might have to edit thepyproject.tomlfile to replacepsycopgwithpsycopg-binary - Run
uv venv - Copy env file
cp .env.dev .env- This will use a local sqlite database and setup logging.
- Run
python manage.py makemigrations,python manage.py migrate,python manage.py collectstatic,python manage.py createcachetable. In order, these set up the required changes to the database, appy the changes, and collect static files into the/staticfiles/folder for serving. - Run
python manage.py runserver. - Go to
localhost:8000to access the site orlocalhost:8000/admin/to view the admin panel. - To use the admin panel run
python manage.py createsuperuserand follow the instructions to create an admin user.
- Production environment variables are stored in vaultwarden.
- These are loaded from
.envfile on the host. - Currently deployed using docker compose
- Upon push to
main, a github action builds and pushes toghcr.io/eshc/eshc-intranet:main. Its also tagged with its commit hash. - Connect to the host running the container (via proxmox) and redeploy. Currently, just using docker compose.
docker compose pull docker compose up -d
- Check that its working.
- If it's not working, you may wish to revert to an older commit by modifying the
docker-compose.ymlon the host.
- If it's not working, you may wish to revert to an older commit by modifying the
- Allauth based user management
- User information displayed on profile page
Basic Wiki - based on waliki - modifieduses django-wiki- User management available through admin app
- Lease management - admin and user sides
- Mark Users as deactivated when they have moved out
- 'Share received' checkbox for admins, display on user profile
- Style everything nicely (Bootstrap 3.3.0)
- Navbar
Waliki app copied to main directoryWiki change history button appears in navbar againEmail sending - uses finance accuses Sendgrid now- Email verification/authentication - allauth
- Store ESHC member specific information
- Polling - can probably be later adapted to proposal voting
- Allow user to edit relevant profile information
- Allows users to sign up to / become members of specific working grops
- Flat info / map
- GM Agenda making
Prompt if no valid lease registeredAdd 'date_signed' fieldFill out inventory information - only allowed once
add who added itadd some proposal textFormatting? Upload markdown? Paste markdown and render on detail page?Preview of markdown before submission
add form for adding proposaladd option to remove proposalList proposals currently open for votingAdd result to modelVote counting and single vote per userDisplay number of votes
- Option to edit a proposal
- Browse bylaws - subset of wiki / or its own, non-editable section
- User directory:
- Shows convenors
Cash overview- Open budgets
- Open proposals with money status
- Moving refunds and liaisons to the intranet? Make public list of refunds?
- mySQL? Heroku uses PostgreSQL, so maybe stick with that?
- Deploy to web? Heroku dynos? How many would we need? It'd be nice if they don't sleep
- Static files for wiki etc. S3 AWS recommended, requires credit card. Should cost micropennies
- Uses bootstrap v3.3.0
- AWS S3 for static files in production
- Uses django-wiki