- In Django 2.2 django.conf.urls.url() is an alias to django.urls.re_path().
- In Django 4.0, url() function will be removed. On Django 3.2, it throws a
warning that this function will be removed in future.
Tests:
- Run unit tests with Django 3.2 and Django 2.2.
- With Django 3.2 there are no warnings when running unit tests and when running
FreedomBox Service.
- Visit a few affected apps with both Django versions.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
Signed-off-by: Nektarios Katakis <iam@nektarioskatakis.xyz>
[sunil: Use the term 'network topology' consistently]
[sunil: Properly title case the <h1> title]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
Tests performed:
- Visit networks main view to list network connections.
- Add an Ethernet connection, view it and delete it.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
- Make first wizard steps for router configuration and Internet connection type
private. Since they run after the admin user page, the steps can run for logged
in users.
- Add option to the Internet connection type wizard, to let the user say that
they don't know the type. This allows them to have a stress-free first setup
experience. The option can act as if they have don't have public IP address at
all. This is an extension of the proposed user experience.
- Implement class based views for simplicity.
- Update various IDs for consistency (even though other IDs in the networks
module don't conform).
- Iron out inconsistent terminology. Setup vs Configuration, Help vs. Wizard,
etc.
Tests performed:
- Run first boot wizard from the beginning. Notice that both the wizard steps
appear properly after the user login step (without permission denied problems).
When not logged in, accessing the wizard steps with URL should redirect to login
page.
- During first boot wizard, select 'Skip this step' in both the steps after
selecting non-default options. Values set should be default options as confirmed
from networks page.
- During first boot wizard, select non-default values, the values should be set
properly as confirmed from networks page.
- From the networks page select each value of the wizard. The option should get
saved properly.
- In case of Internet connection type, when the wizard values changes, the
networks page should reflect the value properly. This should also show properly
after skipping the step during first boot.
- During first boot, the default value for Internet connection type should be 'I
don't know' and router configuration should be 'Not configured'.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Nektarios Katakis <iam@nektarioskatakis.xyz>
This introduces flake8 and fixes a bunch of flake8 errors.
flake8 is run with: ./venv/bin/flake8 plinth
if you're using a python3 venv.
We can eventually further integrate this with gitlab ci.
https://salsa.debian.org/freedombox-team/plinth/issues/58
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
After batman-adv kernel driver takes over the Wi-Fi network interface
and provides a bat0 interface, this interface shows up as device type
'batadv'. This type is not recognized by network manager is dealt with
as a generic device. Configuring this device for IPv4/IPv6 in
auto/shared mode etc. works fine. So, add the ability to configure
generic interfaces.
Add access points found on a particular Wi-Fi device only to that device
as it is not gauranteed that other Wi-Fi devices will be able to find
them. For example, an access point operating in 5 GHz frequency will
only be found and used by Wi-Fi devices capable for 5 GHz communication.
- implemented network status page which supports:
* show IP address and netmask
* show MAC address
* show device name
* show firewall zone name
* show DNS server information
* show default gateway
* show wifi information
* shows if connection is shared or not and if connection is the default connection
- when clicking on a cennection on the overview page go to the status page, not to the
editing page
- ToDo: if connection is disabled and re-enabled again, no information are visible anymore (Bug)
* Added a new choice to main selectbox for adding Network Connections (network.py)
* Added a new form which asks for name, interface, firewall zone, username and password (forms.py, urls.py)
* Added new helper functions to create PPPoE based connection object (network.py)
- Make network-manager package get installed when accessing the index page of
networks. Also freedombox-setup shold actually pull network-manager package
as dependency and use it for configuring the initial networks.
- Remove the /connect page and re-use the /add_wifi page for that purpose.
- Fix add connection page titles.
- Handle the case when network-manager returned empty string for SSID.
- Don't explictly URL encode the Wi-Fi SSID when adding a new Wi-Fi network.
Django automatically handles this in 'url' tag and decodes before url
routing. Relax the regex that matches SSID as part of the URL to handle all
possible SSIDs.
- Name for a network connection is not unique. UUIDs are much less likely to
change compared to name of the connection. No necessity to perform URL
encoding too.
- Move UI error message strings to view module instead of the network module
for proper separation.
- Minor refactoring.