mirror of
https://github.com/inventree/InvenTree.git
synced 2025-08-07 12:22:11 +00:00
Merge branch 'master' into custom-states
This commit is contained in:
@@ -67,6 +67,22 @@ For more information, refer to the installation guides:
|
||||
|
||||
Before performing an update, check the release notes! Any *breaking changes* (changes which require user intervention) will be clearly noted.
|
||||
|
||||
### Cannot import name get_storage_class
|
||||
|
||||
When running an install or update, you may see an error similar to:
|
||||
|
||||
```python
|
||||
ImportError: cannot import name 'get_storage_class' from 'django.core.files.storage'
|
||||
```
|
||||
|
||||
In such a situation, it is likely that the automatic backup procedure is unable to run, as the required python packages are not yet installed or are unavailable.
|
||||
|
||||
To proceed in this case, you can skip the backup procedure by running the `invoke update` command with the `--skip-backup` flag:
|
||||
|
||||
```bash
|
||||
invoke update --skip-backup
|
||||
```
|
||||
|
||||
### Feature *x* does not work after update
|
||||
|
||||
If a particular menu / item is not visible after updating InvenTree, or a certain function no longer seems to work, it may be due to your internet browser caching old versions of CSS and JavaScript files.
|
||||
|
@@ -143,6 +143,13 @@ class InvenTreeTaskTests(TestCase):
|
||||
os.environ['INVENTREE_AUTO_UPDATE'] = 'True'
|
||||
InvenTree.tasks.check_for_migrations()
|
||||
|
||||
# List all current migrations for the InvenTree app
|
||||
migration_dir = os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)), 'migrations'
|
||||
)
|
||||
|
||||
migration_files = os.listdir(migration_dir)
|
||||
|
||||
# Create migration
|
||||
self.assertEqual(len(InvenTree.tasks.get_migration_plan()), 0)
|
||||
call_command('makemigrations', ['InvenTree', '--empty'], interactive=False)
|
||||
@@ -165,6 +172,19 @@ class InvenTreeTaskTests(TestCase):
|
||||
except IndexError: # pragma: no cover
|
||||
pass
|
||||
|
||||
# Let's remove the newly created migration file
|
||||
for fn in os.listdir(migration_dir):
|
||||
fn = os.path.join(migration_dir, fn)
|
||||
|
||||
if (
|
||||
os.path.isfile(fn)
|
||||
and fn not in migration_files
|
||||
and 'auto' in fn
|
||||
and fn.endswith('.py')
|
||||
):
|
||||
print('Removing dummy migration file:', fn)
|
||||
os.remove(fn)
|
||||
|
||||
def test_failed_task_notification(self):
|
||||
"""Test that a failed task will generate a notification."""
|
||||
from common.models import NotificationEntry, NotificationMessage
|
||||
|
Reference in New Issue
Block a user