Merge branch 'revamp' into 'master'
Upgrade to PEP517 buildsystem, fix broken gentoolkit usage. Pretty up See merge request src_prepare/euscan-ng!1
This commit is contained in:
commit
f6bdd66f5f
4
.git-blame-ignore-revs
Normal file
4
.git-blame-ignore-revs
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Reformat with black
|
||||||
|
d860708ec92cfa041f7a89e17c4dd03d17a94071
|
||||||
|
# Reformat with isort
|
||||||
|
70f88ed37d33cccd46a167ba81f2c953936d75d7
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -21,3 +21,4 @@
|
|||||||
/target/
|
/target/
|
||||||
__pycache__/
|
__pycache__/
|
||||||
_build/
|
_build/
|
||||||
|
src/euscan/_version.py
|
||||||
|
36
.gitlab-ci.yml
Normal file
36
.gitlab-ci.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
image: python:latest
|
||||||
|
|
||||||
|
variables:
|
||||||
|
PIP_CACHE_DIR: ${CI_PROJECT_DIR}/.cache/pip
|
||||||
|
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- ${PIP_CACHE_DIR}
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- python --version ; pip --version
|
||||||
|
- pip install virtualenv
|
||||||
|
- virtualenv venv
|
||||||
|
- source venv/bin/activate
|
||||||
|
|
||||||
|
pre-commit:
|
||||||
|
variables:
|
||||||
|
PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- ${PRE_COMMIT_HOME}
|
||||||
|
script:
|
||||||
|
- pip install pre-commit
|
||||||
|
- pre-commit run --all-files
|
||||||
|
|
||||||
|
publish:
|
||||||
|
variables:
|
||||||
|
TWINE_PASSWORD: ${CI_JOB_TOKEN}
|
||||||
|
TWINE_USERNAME: gitlab-ci-token
|
||||||
|
TWINE_REPOSITORY_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi
|
||||||
|
TWINE_NON_INTERACTIVE: 1
|
||||||
|
when: manual # gentoolkit as a dependency blocks publishing for now
|
||||||
|
script:
|
||||||
|
- pip install build twine
|
||||||
|
- python -m build
|
||||||
|
- python -m twine upload --verbose dist/*
|
15
.pre-commit-config.yaml
Normal file
15
.pre-commit-config.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
repos:
|
||||||
|
- repo: https://github.com/psf/black
|
||||||
|
rev: 23.11.0
|
||||||
|
hooks:
|
||||||
|
- id: black
|
||||||
|
|
||||||
|
- repo: https://github.com/PyCQA/isort
|
||||||
|
rev: 5.12.0
|
||||||
|
hooks:
|
||||||
|
- id: isort
|
||||||
|
|
||||||
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
|
rev: v0.1.4
|
||||||
|
hooks:
|
||||||
|
- id: ruff
|
5
AUTHORS
5
AUTHORS
@ -1,8 +1,3 @@
|
|||||||
* euscan
|
* euscan
|
||||||
Original author: Corentin Chary <corentin.chary@gmail.com>
|
Original author: Corentin Chary <corentin.chary@gmail.com>
|
||||||
Current maintainer: src_prepare group https://gitlab.com/src_prepare
|
Current maintainer: src_prepare group https://gitlab.com/src_prepare
|
||||||
|
|
||||||
* euscanwww
|
|
||||||
Original author: Corentin Chary <corentin.chary@gmail.com>
|
|
||||||
Current maintainer: src_prepare group https://gitlab.com/src_prepare
|
|
||||||
|
|
||||||
|
29
LICENSE
29
LICENSE
@ -1,8 +1,8 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
|
|||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
|||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
|||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
@ -225,7 +225,7 @@ impose that choice.
|
|||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
Copyright (C) 19yy <name of author>
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License along
|
||||||
along with this program; if not, write to the Free Software
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
If the program is interactive, make it output a short notice like this
|
||||||
when it starts in an interactive mode:
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
|
|||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
consider it more useful to permit linking proprietary applications with the
|
||||||
library. If this is what you want to do, use the GNU Library General
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
||||||
|
38
Makefile
38
Makefile
@ -1,38 +0,0 @@
|
|||||||
# TODO: rename binary to euscan-ng
|
|
||||||
BIN = euscan
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY:
|
|
||||||
all
|
|
||||||
clean
|
|
||||||
install-user
|
|
||||||
install-user-test
|
|
||||||
install-user-web
|
|
||||||
install
|
|
||||||
uninstall distclean
|
|
||||||
|
|
||||||
|
|
||||||
all:
|
|
||||||
@echo "Did nothing."
|
|
||||||
@echo "To do user installation use target: install-user"
|
|
||||||
|
|
||||||
|
|
||||||
install-user:
|
|
||||||
python setup.py -v install --user
|
|
||||||
|
|
||||||
install-user-test:
|
|
||||||
pip install --user .'[test]'
|
|
||||||
|
|
||||||
install-user-web:
|
|
||||||
pip install --user .'[web]'
|
|
||||||
|
|
||||||
install: install-user
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
|
||||||
sh clean.sh
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
pip uninstall -v -y $(BIN)
|
|
||||||
|
|
||||||
distclean: clean uninstall
|
|
83
README.rst
83
README.rst
@ -85,89 +85,6 @@ default settings.
|
|||||||
Maybe we should add the ability to use /etc/euscan.conf and
|
Maybe we should add the ability to use /etc/euscan.conf and
|
||||||
~/.config/euscan/euscan.conf to override these settings.
|
~/.config/euscan/euscan.conf to override these settings.
|
||||||
|
|
||||||
euscan-www: euscan as a service
|
|
||||||
===============================
|
|
||||||
|
|
||||||
euscan-www is a web application that aggregates euscan results. For example
|
|
||||||
there is an instance of euscan-www that monitors gentoo-x86 + some official
|
|
||||||
overlays currently hosted at http://euscan.iksaif.net/ .
|
|
||||||
|
|
||||||
euscan-www uses django and provides some custom commands to feed the database.
|
|
||||||
You can use euscan-www on you system tree, or preferably you can use a local
|
|
||||||
tree to avoid messing with your system.
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
Install requirements from PyPI using::
|
|
||||||
|
|
||||||
$ python setup.py develop
|
|
||||||
|
|
||||||
Extra dependencies:
|
|
||||||
* portage python api
|
|
||||||
* rrdtool[python]
|
|
||||||
|
|
||||||
Like any django web app, just start by editing settings.py and then run
|
|
||||||
these two commands.
|
|
||||||
::
|
|
||||||
|
|
||||||
$ python manage.py syncdb
|
|
||||||
$ python manage.py migrate
|
|
||||||
|
|
||||||
Now your instance is ready, you can just run this command to browse it.
|
|
||||||
If you want to host it publicly you should use a real webserver.
|
|
||||||
::
|
|
||||||
|
|
||||||
$ python manage.py runserver
|
|
||||||
|
|
||||||
Creating a local tree (optional)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
Create a local tree with all that portage (and layman would need).
|
|
||||||
There is an example in euscanwww/scripts/local-tree/. See escan-update.sh
|
|
||||||
to know what env variables you need to run any portage related command in
|
|
||||||
this local tree.
|
|
||||||
|
|
||||||
Scanning process
|
|
||||||
----------------
|
|
||||||
|
|
||||||
The scanning process is done by euscan-update.sh. You should read carefully
|
|
||||||
this script, and adapt it to your needs. For example it uses gparallel to
|
|
||||||
launch multiple process at a time, and you should adapt that to your number
|
|
||||||
of cpu and network bandwith.
|
|
||||||
|
|
||||||
Once your euscan-update.sh is ok, just run it.
|
|
||||||
::
|
|
||||||
|
|
||||||
$ sh euscan-update.sh
|
|
||||||
|
|
||||||
Custom Django management commands
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
euscan-www povides some new management commands, here is a short description
|
|
||||||
of these commands. Use "help" or read euscan-update.sh to get more informations.
|
|
||||||
|
|
||||||
list-packages
|
|
||||||
List packages stored in database.
|
|
||||||
|
|
||||||
scan-portage
|
|
||||||
Scan the portage tree and store new packages and versions in the database.
|
|
||||||
|
|
||||||
scan-metadata
|
|
||||||
Scan metadata and looks for homepage, maintainers and herds.
|
|
||||||
|
|
||||||
scan-upstream
|
|
||||||
Scan upstream package. The prefered way to use this script it to first launch
|
|
||||||
euscan on some packages, store the result of the file, and feed this command with
|
|
||||||
the result.
|
|
||||||
|
|
||||||
update-counters
|
|
||||||
Update statistics and rrd files.
|
|
||||||
|
|
||||||
regen-rrds
|
|
||||||
If you deleted your rrd files, this script will use the database to
|
|
||||||
regen them.
|
|
||||||
|
|
||||||
How does it work ?
|
How does it work ?
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
1
TODO
1
TODO
@ -61,7 +61,6 @@ euscanwww
|
|||||||
|
|
||||||
### packages
|
### packages
|
||||||
|
|
||||||
- show additional informations in the web interface (remote-id, etc...)
|
|
||||||
- Ignore alpha/beta if current is not alpha/beta: per-package setting using metadata.xml ?
|
- Ignore alpha/beta if current is not alpha/beta: per-package setting using metadata.xml ?
|
||||||
- ~arch / stable support: see "models: keywords"
|
- ~arch / stable support: see "models: keywords"
|
||||||
- stabilisation candidates: check stabilizations rules, and see how this can be automated
|
- stabilisation candidates: check stabilizations rules, and see how this can be automated
|
||||||
|
301
bin/euscan
301
bin/euscan
@ -1,8 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
# Copyright 2011 Corentin Chary <corentin.chary@gmail.com>
|
||||||
"""Copyright 2011 Gentoo Foundation
|
# Copyright 2020-2023 src_prepare group
|
||||||
Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@ -11,32 +10,30 @@ import os
|
|||||||
|
|
||||||
__author__ = "Corentin Chary (iksaif)"
|
__author__ = "Corentin Chary (iksaif)"
|
||||||
__email__ = "corentin.chary@gmail.com"
|
__email__ = "corentin.chary@gmail.com"
|
||||||
__version__ = "git"
|
__productname__ = "euscan-ng"
|
||||||
__productname__ = "euscan"
|
|
||||||
__description__ = "A tool to detect new upstream releases."
|
__description__ = "A tool to detect new upstream releases."
|
||||||
|
|
||||||
|
|
||||||
# Imports
|
# Imports
|
||||||
|
|
||||||
import sys
|
|
||||||
import getopt
|
import getopt
|
||||||
|
import sys
|
||||||
from errno import EINTR, EINVAL
|
from errno import EINTR, EINVAL
|
||||||
from http.client import HTTPConnection
|
from http.client import HTTPConnection
|
||||||
|
|
||||||
from portage import settings
|
|
||||||
from portage.output import white, yellow, turquoise, green
|
|
||||||
from portage.exception import AmbiguousPackageName
|
|
||||||
|
|
||||||
from gentoolkit import pprinter as pp
|
from gentoolkit import pprinter as pp
|
||||||
from gentoolkit.errors import GentoolkitException
|
from gentoolkit.errors import GentoolkitException
|
||||||
|
from portage import settings
|
||||||
|
from portage.exception import AmbiguousPackageName
|
||||||
|
from portage.output import green, turquoise, white, yellow
|
||||||
|
|
||||||
from euscan import CONFIG, output
|
from euscan import CONFIG, output
|
||||||
|
from euscan._version import __version__
|
||||||
from euscan.out import progress_bar
|
from euscan.out import progress_bar
|
||||||
|
|
||||||
|
|
||||||
# Globals
|
# Globals
|
||||||
isatty = os.environ.get('TERM') != 'dumb' and sys.stdout.isatty()
|
isatty = os.environ.get("TERM") != "dumb" and sys.stdout.isatty()
|
||||||
isatty_stderr = os.environ.get('TERM') != 'dumb' and sys.stderr.isatty()
|
isatty_stderr = os.environ.get("TERM") != "dumb" and sys.stderr.isatty()
|
||||||
|
|
||||||
|
|
||||||
def exit_helper(status):
|
def exit_helper(status):
|
||||||
@ -62,11 +59,10 @@ def setup_signals():
|
|||||||
|
|
||||||
def print_version():
|
def print_version():
|
||||||
"""Output the version info."""
|
"""Output the version info."""
|
||||||
print("%s (%s) - %s" \
|
print(f"{__productname__} ({__version__}) - {__description__}")
|
||||||
% (__productname__, __version__, __description__))
|
|
||||||
print()
|
print()
|
||||||
print("Author: %s <%s>" % (__author__, __email__))
|
print(f"Copyright 2011 {__author__} <{__email__}>")
|
||||||
print("Copyright 2011 Gentoo Foundation")
|
print("Copyright 2020-2023 src_prepare group")
|
||||||
print("Distributed under the terms of the GNU General Public License v2")
|
print("Distributed under the terms of the GNU General Public License v2")
|
||||||
|
|
||||||
|
|
||||||
@ -78,70 +74,125 @@ def print_usage(_error=None, help=None):
|
|||||||
if _error:
|
if _error:
|
||||||
out = sys.stderr
|
out = sys.stderr
|
||||||
|
|
||||||
if not _error in ('global-options', 'packages',):
|
if _error not in (
|
||||||
|
"global-options",
|
||||||
|
"packages",
|
||||||
|
):
|
||||||
_error = None
|
_error = None
|
||||||
|
|
||||||
if not _error and not help:
|
if not _error and not help:
|
||||||
help = 'all'
|
help = "all"
|
||||||
|
|
||||||
if _error in ('global-options',):
|
if _error in ("global-options",):
|
||||||
output.eerror("Wrong option on command line.\n")
|
output.eerror("Wrong option on command line.\n")
|
||||||
|
|
||||||
if _error in ('packages',):
|
if _error in ("packages",):
|
||||||
output.eerror("You need to specify exactly one package.\n")
|
output.eerror("You need to specify exactly one package.\n")
|
||||||
|
|
||||||
print(white("Usage:"), file=out)
|
print(white("Usage:"), file=out)
|
||||||
if _error in ('global-options', 'packages',) or help == 'all':
|
if (
|
||||||
print(" " + turquoise(__productname__),
|
_error
|
||||||
|
in (
|
||||||
|
"global-options",
|
||||||
|
"packages",
|
||||||
|
)
|
||||||
|
or help == "all"
|
||||||
|
):
|
||||||
|
print(
|
||||||
|
" " + turquoise(__productname__),
|
||||||
yellow("[options]"),
|
yellow("[options]"),
|
||||||
green("<package> [<package> [...]]"), file=out)
|
green("<package> [<package> [...]]"),
|
||||||
if _error in ('global-options',) or help == 'all':
|
file=out,
|
||||||
print(" " + turquoise(__productname__),
|
)
|
||||||
yellow("[--help, --version]"), file=out)
|
if _error in ("global-options",) or help == "all":
|
||||||
|
print(" " + turquoise(__productname__), yellow("[--help, --version]"), file=out)
|
||||||
|
|
||||||
print(file=out)
|
print(file=out)
|
||||||
if _error in ('global-options',) or help:
|
if _error in ("global-options",) or help:
|
||||||
print("Available ", yellow("options") + ":", file=out)
|
print("Available ", yellow("options") + ":", file=out)
|
||||||
print(yellow(" -C, --nocolor") +
|
print(
|
||||||
" - turn off colors on output", file=out)
|
yellow(" -C, --nocolor")
|
||||||
print(yellow(" -q, --quiet") +
|
+ " - turn off colors on output",
|
||||||
" - be as quiet as possible", file=out)
|
file=out,
|
||||||
print(yellow(" -h, --help") +
|
)
|
||||||
" - display the help screen", file=out)
|
print(
|
||||||
print(yellow(" -V, --version") +
|
yellow(" -q, --quiet")
|
||||||
" - display version info", file=out)
|
+ " - be as quiet as possible",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
yellow(" -h, --help")
|
||||||
|
+ " - display the help screen",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
yellow(" -V, --version") + " - display version info",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
print(file=out)
|
print(file=out)
|
||||||
print(yellow(" -1, --oneshot") +
|
print(
|
||||||
" - stop as soon as a new version is found",
|
yellow(" -1, --oneshot")
|
||||||
file=out)
|
+ " - stop as soon as a new version is found",
|
||||||
print(yellow(" -b, --brute-force=<level>") +
|
file=out,
|
||||||
" - define the brute force " + yellow("<level>") +
|
)
|
||||||
" (default: 2)\n" +
|
print(
|
||||||
" " * 38 + "bigger levels will generate more versions numbers\n" +
|
yellow(" -b, --brute-force=<level>")
|
||||||
" " * 38 + "0 means disabled", file=out)
|
+ " - define the brute force "
|
||||||
print(yellow(" -f, --format=<format>") +
|
+ yellow("<level>")
|
||||||
" - define the output " + yellow("<format>") +
|
+ " (default: 2)\n"
|
||||||
" (available: json, xml)", file=out)
|
+ " " * 38
|
||||||
print(yellow(" -p, --progress") +
|
+ "bigger levels will generate more versions numbers\n"
|
||||||
" - display a progress bar", file=out)
|
+ " " * 38
|
||||||
print(yellow(" -i, --ignore-pre-release") +
|
+ "0 means disabled",
|
||||||
" " * 11 + "- Ignore non-stable versions", file=out)
|
file=out,
|
||||||
print(yellow(" -I, --ignore-pre-release-if-stable") +
|
)
|
||||||
" - Ignore non-stable versions only if current\n" +
|
print(
|
||||||
" " * 38 + "version is stable", file=out)
|
yellow(" -f, --format=<format>")
|
||||||
print(yellow(" --mirror") +
|
+ " - define the output "
|
||||||
" - use mirror:// URIs", file=out)
|
+ yellow("<format>")
|
||||||
print(yellow(" --ebuild-uri") +
|
+ " (available: json, xml)",
|
||||||
" - use ebuild variables in URIs", file=out)
|
file=out,
|
||||||
print(yellow(" --no-handlers") +
|
)
|
||||||
" - exclude handlers (comma-separated list)",
|
print(
|
||||||
file=out)
|
yellow(" -p, --progress") + " - display a progress bar",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
yellow(" -i, --ignore-pre-release")
|
||||||
|
+ " " * 11
|
||||||
|
+ "- Ignore non-stable versions",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
yellow(" -I, --ignore-pre-release-if-stable")
|
||||||
|
+ " - Ignore non-stable versions only if current\n"
|
||||||
|
+ " " * 38
|
||||||
|
+ "version is stable",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
yellow(" --mirror") + " - use mirror:// URIs",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
yellow(" --ebuild-uri")
|
||||||
|
+ " - use ebuild variables in URIs",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
yellow(" --no-handlers")
|
||||||
|
+ " - exclude handlers (comma-separated list)",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
print(file=out)
|
print(file=out)
|
||||||
|
|
||||||
if _error in ('packages',) or help:
|
if _error in ("packages",) or help:
|
||||||
print(green(" package") +
|
print(
|
||||||
" " * 28 + "- the packages (or ebuilds) you want to scan",
|
green(" package")
|
||||||
file=out)
|
+ " " * 28
|
||||||
|
+ "- the packages (or ebuilds) you want to scan",
|
||||||
|
file=out,
|
||||||
|
)
|
||||||
print(file=out)
|
print(file=out)
|
||||||
|
|
||||||
# print( "More detailed instruction can be found in",
|
# print( "More detailed instruction can be found in",
|
||||||
@ -150,6 +201,7 @@ def print_usage(_error=None, help=None):
|
|||||||
|
|
||||||
class ParseArgsException(Exception):
|
class ParseArgsException(Exception):
|
||||||
"""For parseArgs() -> main() communications."""
|
"""For parseArgs() -> main() communications."""
|
||||||
|
|
||||||
def __init__(self, value):
|
def __init__(self, value):
|
||||||
self.value = value
|
self.value = value
|
||||||
|
|
||||||
@ -168,92 +220,102 @@ def parse_args():
|
|||||||
return_code = True
|
return_code = True
|
||||||
for o, a in opts:
|
for o, a in opts:
|
||||||
if o in ("-h", "--help"):
|
if o in ("-h", "--help"):
|
||||||
raise ParseArgsException('help')
|
raise ParseArgsException("help")
|
||||||
elif o in ("-V", "--version"):
|
elif o in ("-V", "--version"):
|
||||||
raise ParseArgsException('version')
|
raise ParseArgsException("version")
|
||||||
elif o in ("-C", "--nocolor"):
|
elif o in ("-C", "--nocolor"):
|
||||||
CONFIG['nocolor'] = True
|
CONFIG["nocolor"] = True
|
||||||
pp.output.nocolor()
|
pp.output.nocolor()
|
||||||
elif o in ("-q", "--quiet"):
|
elif o in ("-q", "--quiet"):
|
||||||
CONFIG['quiet'] = True
|
CONFIG["quiet"] = True
|
||||||
CONFIG['verbose'] = 0
|
CONFIG["verbose"] = 0
|
||||||
elif o in ("-1", "--oneshot"):
|
elif o in ("-1", "--oneshot"):
|
||||||
CONFIG['oneshot'] = True
|
CONFIG["oneshot"] = True
|
||||||
elif o in ("-b", "--brute-force"):
|
elif o in ("-b", "--brute-force"):
|
||||||
CONFIG['brute-force'] = int(a)
|
CONFIG["brute-force"] = int(a)
|
||||||
elif o in ("-v", "--verbose") and not CONFIG['quiet']:
|
elif o in ("-v", "--verbose") and not CONFIG["quiet"]:
|
||||||
CONFIG['verbose'] += 1
|
CONFIG["verbose"] += 1
|
||||||
elif o in ("-f", "--format"):
|
elif o in ("-f", "--format"):
|
||||||
CONFIG['format'] = a
|
CONFIG["format"] = a
|
||||||
CONFIG['nocolor'] = True
|
CONFIG["nocolor"] = True
|
||||||
pp.output.nocolor()
|
pp.output.nocolor()
|
||||||
elif o in ("-p", "--progress"):
|
elif o in ("-p", "--progress"):
|
||||||
CONFIG['progress'] = isatty_stderr
|
CONFIG["progress"] = isatty_stderr
|
||||||
elif o in ("--mirror"):
|
elif o in ("--mirror"):
|
||||||
CONFIG['mirror'] = True
|
CONFIG["mirror"] = True
|
||||||
elif o in ("-i", "--ignore-pre-release"):
|
elif o in ("-i", "--ignore-pre-release"):
|
||||||
CONFIG['ignore-pre-release'] = True
|
CONFIG["ignore-pre-release"] = True
|
||||||
elif o in ("-I", "--ignore-pre-release-if-stable"):
|
elif o in ("-I", "--ignore-pre-release-if-stable"):
|
||||||
CONFIG['ignore-pre-release-if-stable'] = True
|
CONFIG["ignore-pre-release-if-stable"] = True
|
||||||
elif o in ("--ebuild-uri"):
|
elif o in ("--ebuild-uri"):
|
||||||
CONFIG['ebuild-uri'] = True
|
CONFIG["ebuild-uri"] = True
|
||||||
elif o in ("--no-handlers"):
|
elif o in ("--no-handlers"):
|
||||||
CONFIG['handlers-exclude'] = a.split(",")
|
CONFIG["handlers-exclude"] = a.split(",")
|
||||||
else:
|
else:
|
||||||
return_code = False
|
return_code = False
|
||||||
|
|
||||||
return return_code
|
return return_code
|
||||||
|
|
||||||
# here are the different allowed command line options (getopt args)
|
# here are the different allowed command line options (getopt args)
|
||||||
getopt_options = {'short': {}, 'long': {}}
|
getopt_options = {"short": {}, "long": {}}
|
||||||
getopt_options['short']['global'] = "hVCqv1b:f:piI"
|
getopt_options["short"]["global"] = "hVCqv1b:f:piI"
|
||||||
getopt_options['long']['global'] = [
|
getopt_options["long"]["global"] = [
|
||||||
"help", "version", "nocolor", "quiet", "verbose", "oneshot",
|
"help",
|
||||||
"brute-force=", "format=", "progress", "mirror", "ignore-pre-release",
|
"version",
|
||||||
"ignore-pre-release-if-stable", "ebuild-uri", "no-handlers="
|
"nocolor",
|
||||||
|
"quiet",
|
||||||
|
"verbose",
|
||||||
|
"oneshot",
|
||||||
|
"brute-force=",
|
||||||
|
"format=",
|
||||||
|
"progress",
|
||||||
|
"mirror",
|
||||||
|
"ignore-pre-release",
|
||||||
|
"ignore-pre-release-if-stable",
|
||||||
|
"ebuild-uri",
|
||||||
|
"no-handlers=",
|
||||||
]
|
]
|
||||||
|
|
||||||
short_opts = getopt_options['short']['global']
|
short_opts = getopt_options["short"]["global"]
|
||||||
long_opts = getopt_options['long']['global']
|
long_opts = getopt_options["long"]["global"]
|
||||||
opts_mode = 'global'
|
opts_mode = "global"
|
||||||
|
|
||||||
# apply getopts to command line, show partial help on failure
|
# apply getopts to command line, show partial help on failure
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], short_opts, long_opts)
|
opts, args = getopt.getopt(sys.argv[1:], short_opts, long_opts)
|
||||||
except:
|
except getopt.GetoptError:
|
||||||
raise ParseArgsException(opts_mode + '-options')
|
raise ParseArgsException(opts_mode + "-options")
|
||||||
|
|
||||||
# set options accordingly
|
# set options accordingly
|
||||||
option_switch(opts)
|
option_switch(opts)
|
||||||
|
|
||||||
if len(args) < 1:
|
if len(args) < 1:
|
||||||
raise ParseArgsException('packages')
|
raise ParseArgsException("packages")
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Parse command line and execute all actions."""
|
"""Parse command line and execute all actions."""
|
||||||
CONFIG['nocolor'] = (
|
CONFIG["nocolor"] = CONFIG["nocolor"] or (
|
||||||
CONFIG['nocolor'] or
|
settings["NOCOLOR"] in ("yes", "true") or not isatty
|
||||||
(settings["NOCOLOR"] in ('yes', 'true') or not isatty)
|
|
||||||
)
|
)
|
||||||
if CONFIG['nocolor']:
|
if CONFIG["nocolor"]:
|
||||||
pp.output.nocolor()
|
pp.output.nocolor()
|
||||||
|
|
||||||
# parse command line options and actions
|
# parse command line options and actions
|
||||||
try:
|
try:
|
||||||
queries = parse_args()
|
queries = parse_args()
|
||||||
except ParseArgsException as e:
|
except ParseArgsException as e:
|
||||||
if e.value == 'help':
|
if e.value == "help":
|
||||||
print_usage(help='all')
|
print_usage(help="all")
|
||||||
exit_helper(0)
|
exit_helper(0)
|
||||||
|
|
||||||
elif e.value[:5] == 'help-':
|
elif e.value[:5] == "help-":
|
||||||
print_usage(help=e.value[5:])
|
print_usage(help=e.value[5:])
|
||||||
exit_helper(0)
|
exit_helper(0)
|
||||||
|
|
||||||
elif e.value == 'version':
|
elif e.value == "version":
|
||||||
print_version()
|
print_version()
|
||||||
exit_helper(0)
|
exit_helper(0)
|
||||||
|
|
||||||
@ -261,14 +323,14 @@ def main():
|
|||||||
print_usage(e.value)
|
print_usage(e.value)
|
||||||
exit_helper(EINVAL)
|
exit_helper(EINVAL)
|
||||||
|
|
||||||
if CONFIG['verbose'] > 2:
|
if CONFIG["verbose"] > 2:
|
||||||
HTTPConnection.debuglevel = 1
|
HTTPConnection.debuglevel = 1
|
||||||
|
|
||||||
if not CONFIG["format"] and not CONFIG['quiet']:
|
if not CONFIG["format"] and not CONFIG["quiet"]:
|
||||||
CONFIG["progress"] = False
|
CONFIG["progress"] = False
|
||||||
|
|
||||||
on_progress = None
|
on_progress = None
|
||||||
if CONFIG['progress']:
|
if CONFIG["progress"]:
|
||||||
on_progress_gen = progress_bar()
|
on_progress_gen = progress_bar()
|
||||||
on_progress = next(on_progress_gen)
|
on_progress = next(on_progress_gen)
|
||||||
on_progress(maxval=len(queries) * 100, increment=0, label="Working...")
|
on_progress(maxval=len(queries) * 100, increment=0, label="Working...")
|
||||||
@ -293,35 +355,36 @@ def main():
|
|||||||
from os.path import basename # To get the short name
|
from os.path import basename # To get the short name
|
||||||
|
|
||||||
output.eerror(
|
output.eerror(
|
||||||
"The short ebuild name '%s' is ambiguous. Please specify" %
|
"The short ebuild name '%s' is ambiguous. Please specify"
|
||||||
basename(pkgs[0]) +
|
% basename(pkgs[0])
|
||||||
"one of the above fully-qualified ebuild names instead."
|
+ "one of the above fully-qualified ebuild names instead."
|
||||||
)
|
)
|
||||||
exit_helper(1)
|
exit_helper(1)
|
||||||
|
|
||||||
except GentoolkitException as err:
|
except GentoolkitException as err:
|
||||||
output.eerror('%s: %s' % (query, str(err)))
|
output.eerror("%s: %s" % (query, str(err)))
|
||||||
exit_helper(1)
|
exit_helper(1)
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
import traceback
|
import traceback
|
||||||
print ('-' * 60)
|
|
||||||
traceback.print_exc(file=sys.stderr)
|
|
||||||
print ('-' * 60)
|
|
||||||
|
|
||||||
output.eerror('%s: %s' % (query, str(err)))
|
print("-" * 60)
|
||||||
|
traceback.print_exc(file=sys.stderr)
|
||||||
|
print("-" * 60)
|
||||||
|
|
||||||
|
output.eerror("%s: %s" % (query, str(err)))
|
||||||
exit_helper(1)
|
exit_helper(1)
|
||||||
|
|
||||||
if not ret and not CONFIG['quiet']:
|
if not ret and not CONFIG["quiet"]:
|
||||||
output.einfo(
|
output.einfo(
|
||||||
"Didn't find any new version, check package's homepage " +
|
"Didn't find any new version, check package's homepage "
|
||||||
"for more informations"
|
+ "for more informations"
|
||||||
)
|
)
|
||||||
|
|
||||||
if not (CONFIG['format'] or CONFIG['quiet']) and len(queries) > 1:
|
if not (CONFIG["format"] or CONFIG["quiet"]) and len(queries) > 1:
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
if CONFIG['progress']:
|
if CONFIG["progress"]:
|
||||||
next(on_progress_gen)
|
next(on_progress_gen)
|
||||||
print("\n", file=sys.stderr)
|
print("\n", file=sys.stderr)
|
||||||
|
|
||||||
|
@ -1,20 +1,22 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
# Copyright 2011 Corentin Chary <corentin.chary@gmail.com>
|
||||||
|
# Copyright 2020-2023 src_prepare group
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
import urllib
|
|
||||||
from tempfile import mkstemp
|
|
||||||
import tarfile
|
|
||||||
import gzip
|
import gzip
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
|
import re
|
||||||
import shutil
|
import shutil
|
||||||
|
import sys
|
||||||
|
import tarfile
|
||||||
|
import urllib
|
||||||
from difflib import unified_diff
|
from difflib import unified_diff
|
||||||
|
from tempfile import mkstemp
|
||||||
|
|
||||||
from portage.exception import AmbiguousPackageName
|
|
||||||
from gentoolkit.query import Query
|
|
||||||
from BeautifulSoup import BeautifulSoup, SoupStrainer
|
from BeautifulSoup import BeautifulSoup, SoupStrainer
|
||||||
|
from gentoolkit.query import Query
|
||||||
|
from portage.exception import AmbiguousPackageName
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -28,25 +30,25 @@ def guess_indent_values(before):
|
|||||||
def guess_for_tags(tags):
|
def guess_for_tags(tags):
|
||||||
for tag in tags:
|
for tag in tags:
|
||||||
for i in [0, 2, 4, 6, 8, 12, 16]:
|
for i in [0, 2, 4, 6, 8, 12, 16]:
|
||||||
if '\n%s<%s' % (' ' * i, tag) in before:
|
if "\n%s<%s" % (" " * i, tag) in before:
|
||||||
return i, False
|
return i, False
|
||||||
for i in [0, 1, 2]:
|
for i in [0, 1, 2]:
|
||||||
if '\n%s<%s' % ('\t' * i, tag) in before:
|
if "\n%s<%s" % ("\t" * i, tag) in before:
|
||||||
return i, True
|
return i, True
|
||||||
return -1, False
|
return -1, False
|
||||||
|
|
||||||
rindent, tab = guess_for_tags(
|
rindent, tab = guess_for_tags(
|
||||||
['herd', 'maintainer', 'longdescription', 'use', 'upstream']
|
["herd", "maintainer", "longdescription", "use", "upstream"]
|
||||||
)
|
)
|
||||||
if rindent == -1:
|
if rindent == -1:
|
||||||
rindent = 2
|
rindent = 2
|
||||||
rindent_str = ('\t' if tab else ' ') * rindent
|
rindent_str = ("\t" if tab else " ") * rindent
|
||||||
indent, tab = guess_for_tags(['watch', 'name', 'email'])
|
indent, tab = guess_for_tags(["watch", "name", "email"])
|
||||||
if indent == -1:
|
if indent == -1:
|
||||||
indent = rindent * 2 if rindent else 4
|
indent = rindent * 2 if rindent else 4
|
||||||
if rindent and rindent_str == '\t':
|
if rindent and rindent_str == "\t":
|
||||||
tab = True
|
tab = True
|
||||||
indent_str = ('\t' if tab else ' ') * indent
|
indent_str = ("\t" if tab else " ") * indent
|
||||||
return rindent_str, indent_str
|
return rindent_str, indent_str
|
||||||
|
|
||||||
|
|
||||||
@ -66,7 +68,7 @@ def handle_diff(deb_url):
|
|||||||
|
|
||||||
watch_data = ""
|
watch_data = ""
|
||||||
|
|
||||||
fp = gzip.open(temp_deb, 'rb')
|
fp = gzip.open(temp_deb, "rb")
|
||||||
for line in fp:
|
for line in fp:
|
||||||
if re.match(r"\+\+\+ .+?/debian/watch", line):
|
if re.match(r"\+\+\+ .+?/debian/watch", line):
|
||||||
fp.readline() # diff lines, don't care
|
fp.readline() # diff lines, don't care
|
||||||
@ -128,7 +130,7 @@ def get_deb_url(name):
|
|||||||
|
|
||||||
if not deb_url:
|
if not deb_url:
|
||||||
logger.error(" Cannot get package from %s" % url)
|
logger.error(" Cannot get package from %s" % url)
|
||||||
name = raw_input(" Package name in Debian: ")
|
name = input(" Package name in Debian: ")
|
||||||
|
|
||||||
return deb_url, deb_type
|
return deb_url, deb_type
|
||||||
|
|
||||||
@ -144,8 +146,9 @@ def patch_metadata(package, watch_data, diff=False):
|
|||||||
data = original
|
data = original
|
||||||
|
|
||||||
# clean watch_data
|
# clean watch_data
|
||||||
watch_data = "\n".join([line for line in watch_data.split("\n")
|
watch_data = "\n".join(
|
||||||
if not line.startswith("#")]) # comments
|
[line for line in watch_data.split("\n") if not line.startswith("#")]
|
||||||
|
) # comments
|
||||||
|
|
||||||
watch_data = watch_data.replace("\\\n", "") # remove backslashes
|
watch_data = watch_data.replace("\\\n", "") # remove backslashes
|
||||||
|
|
||||||
@ -163,10 +166,7 @@ def patch_metadata(package, watch_data, diff=False):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# parse watch_line
|
# parse watch_line
|
||||||
result = re.match(
|
result = re.match(r'(?:opts=(?:"([^"]+?)"|([^\s]+?)) )?(.*)', watch_line)
|
||||||
r'(?:opts=(?:"([^"]+?)"|([^\s]+?)) )?(.*)',
|
|
||||||
watch_line
|
|
||||||
)
|
|
||||||
|
|
||||||
opts_quote, opts, url = result.groups()
|
opts_quote, opts, url = result.groups()
|
||||||
opts = opts_quote or opts
|
opts = opts_quote or opts
|
||||||
@ -188,21 +188,27 @@ def patch_metadata(package, watch_data, diff=False):
|
|||||||
url = " ".join([x for x in url_search.groups() if x is not None])
|
url = " ".join([x for x in url_search.groups() if x is not None])
|
||||||
|
|
||||||
if opts:
|
if opts:
|
||||||
watch_tag = '%s<watch version="%s" %s>%s</watch>' % \
|
watch_tag = '%s<watch version="%s" %s>%s</watch>' % (
|
||||||
(indent, version, opts, url)
|
indent,
|
||||||
|
version,
|
||||||
|
opts,
|
||||||
|
url,
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
watch_tag = '%s<watch version="%s">%s</watch>' % \
|
watch_tag = '%s<watch version="%s">%s</watch>' % (indent, version, url)
|
||||||
(indent, version, url)
|
|
||||||
watch_tags.append(watch_tag)
|
watch_tags.append(watch_tag)
|
||||||
|
|
||||||
watch_tags = "\n".join(watch_tags)
|
watch_tags = "\n".join(watch_tags)
|
||||||
|
|
||||||
if '<upstream>' in data:
|
if "<upstream>" in data:
|
||||||
data = data.replace('<upstream>', '<upstream>\n%s' % watch_tags, 1)
|
data = data.replace("<upstream>", "<upstream>\n%s" % watch_tags, 1)
|
||||||
else:
|
else:
|
||||||
rep = '%s<upstream>\n%s\n%s</upstream>\n</pkgmetadata>' % \
|
rep = "%s<upstream>\n%s\n%s</upstream>\n</pkgmetadata>" % (
|
||||||
(rindent, watch_tags, rindent)
|
rindent,
|
||||||
data = data.replace('</pkgmetadata>', rep, 1)
|
watch_tags,
|
||||||
|
rindent,
|
||||||
|
)
|
||||||
|
data = data.replace("</pkgmetadata>", rep, 1)
|
||||||
|
|
||||||
if not diff:
|
if not diff:
|
||||||
return data
|
return data
|
||||||
@ -214,8 +220,8 @@ def patch_metadata(package, watch_data, diff=False):
|
|||||||
res = unified_diff(
|
res = unified_diff(
|
||||||
original.splitlines(True),
|
original.splitlines(True),
|
||||||
data.splitlines(True),
|
data.splitlines(True),
|
||||||
fromfile=os.path.join('a/', metadata_path),
|
fromfile=os.path.join("a/", metadata_path),
|
||||||
tofile=os.path.join('b/', metadata_path),
|
tofile=os.path.join("b/", metadata_path),
|
||||||
)
|
)
|
||||||
return "".join([x for x in res])
|
return "".join([x for x in res])
|
||||||
|
|
||||||
@ -240,7 +246,7 @@ def process_package(query, diff=False):
|
|||||||
|
|
||||||
matches = sorted(matches)
|
matches = sorted(matches)
|
||||||
package = matches.pop()
|
package = matches.pop()
|
||||||
if '9999' in package.version and len(matches) > 0:
|
if "9999" in package.version and len(matches) > 0:
|
||||||
package = matches.pop()
|
package = matches.pop()
|
||||||
|
|
||||||
watch_data = get_watch_data(package)
|
watch_data = get_watch_data(package)
|
||||||
@ -252,16 +258,21 @@ def process_package(query, diff=False):
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
import optparse
|
import optparse
|
||||||
|
|
||||||
p = optparse.OptionParser(
|
p = optparse.OptionParser(
|
||||||
usage="usage: %prog <package> [<package> [...]]",
|
usage="usage: %prog <package> [<package> [...]]",
|
||||||
)
|
)
|
||||||
p.add_option('-d', '--diff', action="store_true", dest="diff",
|
p.add_option(
|
||||||
|
"-d",
|
||||||
|
"--diff",
|
||||||
|
action="store_true",
|
||||||
|
dest="diff",
|
||||||
default=False,
|
default=False,
|
||||||
help="Outputs a diff")
|
help="Outputs a diff",
|
||||||
|
)
|
||||||
opts, packages = p.parse_args()
|
opts, packages = p.parse_args()
|
||||||
|
|
||||||
logging.basicConfig(stream=sys.stderr, level=logging.INFO,
|
logging.basicConfig(stream=sys.stderr, level=logging.INFO, format="%(message)s")
|
||||||
format='%(message)s')
|
|
||||||
|
|
||||||
for package in packages:
|
for package in packages:
|
||||||
logger.info("Processing %s..." % package)
|
logger.info("Processing %s..." % package)
|
||||||
@ -269,5 +280,6 @@ def main():
|
|||||||
if result:
|
if result:
|
||||||
sys.stdout.write(result)
|
sys.stdout.write(result)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
9
clean.sh
9
clean.sh
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
|
|
||||||
rm -drv build
|
|
||||||
rm -drv dist
|
|
||||||
find . -name "*.egg*" -exec rm -drv {} \;
|
|
||||||
find . -name "*__pycache__*" -exec rm -drv {} \;
|
|
||||||
|
|
||||||
exit 0
|
|
6
euscanwww/.gitignore
vendored
6
euscanwww/.gitignore
vendored
@ -1,6 +0,0 @@
|
|||||||
var/cache/*/
|
|
||||||
var/charts/*.png
|
|
||||||
var/rrd/*.rrd
|
|
||||||
var/db/euscan.db
|
|
||||||
var/db/euscan.db-journal
|
|
||||||
local_settings.py
|
|
@ -1,45 +0,0 @@
|
|||||||
## Basic Install
|
|
||||||
|
|
||||||
# Create local_settings.py, you can override settings.py stuff here
|
|
||||||
# You should at least define SECRET_KEY
|
|
||||||
touch euscanwww/local_settings.py
|
|
||||||
|
|
||||||
# Initialize database
|
|
||||||
./manage.py syncdb
|
|
||||||
./manage.py migrate
|
|
||||||
|
|
||||||
# emerge euscan, or add euscan to your path somehow
|
|
||||||
|
|
||||||
# Scan htop
|
|
||||||
./manage.py scan-portage htop # Scan ebuilds
|
|
||||||
./manage.py scan-metadata htop # Lookup for maintainers, herds, etc...
|
|
||||||
./manage.py scan-upstream htop # Run euscan
|
|
||||||
|
|
||||||
# Scan dev-python
|
|
||||||
eix --only-names -C dev-python | ./manage.py scan-portage
|
|
||||||
eix --only-names -C dev-python | ./manage.py scan-metadata
|
|
||||||
eix --only-names -C dev-python | ./manage.py scan-upstream
|
|
||||||
|
|
||||||
# Update counters at end of scan
|
|
||||||
./manage.py update-counters # Update counters, graphs, etc...
|
|
||||||
|
|
||||||
# Start server
|
|
||||||
./manage.py runserver
|
|
||||||
|
|
||||||
|
|
||||||
## Importing a snapshot
|
|
||||||
|
|
||||||
# Remove database
|
|
||||||
|
|
||||||
# Reinitialize database
|
|
||||||
./manage.py syncdb
|
|
||||||
./manage.py migrate
|
|
||||||
|
|
||||||
# Import snapshot
|
|
||||||
./manage.py loaddata var/snapshots/snapshot-yyyymmdd.js
|
|
||||||
|
|
||||||
rm -rf var/rrd/*
|
|
||||||
rm -rf var/cache/*
|
|
||||||
rm -rf var/charts/*
|
|
||||||
|
|
||||||
./manage.py regen-rrds
|
|
@ -1,36 +0,0 @@
|
|||||||
Requirements
|
|
||||||
============
|
|
||||||
|
|
||||||
Installing requirements with setup.py is the easiest way, just run::
|
|
||||||
|
|
||||||
python setup.py develop
|
|
||||||
|
|
||||||
or::
|
|
||||||
|
|
||||||
python setup.py install # to install euscan and requirements
|
|
||||||
|
|
||||||
If you prefer to use portage just install dev-python/django-celery
|
|
||||||
|
|
||||||
There's the need of having a broker for tasks. The default and reccommended
|
|
||||||
broker is RabbitMQ.
|
|
||||||
Install with::
|
|
||||||
emerge rabbitmq-server
|
|
||||||
|
|
||||||
|
|
||||||
Running Celery
|
|
||||||
==============
|
|
||||||
|
|
||||||
You'll need:
|
|
||||||
* celeryd (celery daemon for running tasks)::
|
|
||||||
|
|
||||||
python manage.py celeryd -B -E -l INFO
|
|
||||||
|
|
||||||
* celerycam (for monitoring celery and see the results in the django admin page)::
|
|
||||||
|
|
||||||
python manage.py celerycam
|
|
||||||
|
|
||||||
|
|
||||||
TODO
|
|
||||||
====
|
|
||||||
|
|
||||||
Provide a supervisord configuration
|
|
@ -1,60 +0,0 @@
|
|||||||
from djeuscan.models import Package, Version, VersionLog, EuscanResult, \
|
|
||||||
Log, WorldLog, CategoryLog, HerdLog, MaintainerLog, Herd, Maintainer, \
|
|
||||||
RefreshPackageQuery, Category, Overlay, ProblemReport
|
|
||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
|
|
||||||
class EuscanResultAdmin(admin.ModelAdmin):
|
|
||||||
search_fields = ('package__name', 'package__category')
|
|
||||||
list_filter = ('datetime', 'package__category')
|
|
||||||
ordering = ["-datetime"]
|
|
||||||
|
|
||||||
|
|
||||||
class HerdAdmin(admin.ModelAdmin):
|
|
||||||
search_fields = ('herd', 'email')
|
|
||||||
ordering = ["herd"]
|
|
||||||
|
|
||||||
|
|
||||||
class MaintainerAdmin(admin.ModelAdmin):
|
|
||||||
search_fields = ('name', 'email')
|
|
||||||
ordering = ["name"]
|
|
||||||
|
|
||||||
|
|
||||||
class PackageAdmin(admin.ModelAdmin):
|
|
||||||
search_fields = ('category', 'name')
|
|
||||||
list_filter = ('category', )
|
|
||||||
|
|
||||||
|
|
||||||
class VersionAdmin(admin.ModelAdmin):
|
|
||||||
search_fields = ('package__name', 'package__category')
|
|
||||||
list_filter = ('overlay', 'packaged')
|
|
||||||
|
|
||||||
|
|
||||||
class ProblemReportAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ('package', 'subject', 'datetime')
|
|
||||||
search_fields = ('package__name', 'package__category')
|
|
||||||
list_filter = ('datetime', 'package__category')
|
|
||||||
ordering = ["-datetime"]
|
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Package, PackageAdmin)
|
|
||||||
|
|
||||||
admin.site.register(Herd, HerdAdmin)
|
|
||||||
admin.site.register(Maintainer, MaintainerAdmin)
|
|
||||||
|
|
||||||
admin.site.register(Version, VersionAdmin)
|
|
||||||
admin.site.register(VersionLog)
|
|
||||||
|
|
||||||
admin.site.register(EuscanResult, EuscanResultAdmin)
|
|
||||||
|
|
||||||
admin.site.register(Log)
|
|
||||||
admin.site.register(WorldLog)
|
|
||||||
admin.site.register(CategoryLog)
|
|
||||||
admin.site.register(HerdLog)
|
|
||||||
admin.site.register(MaintainerLog)
|
|
||||||
|
|
||||||
admin.site.register(RefreshPackageQuery)
|
|
||||||
admin.site.register(Category)
|
|
||||||
admin.site.register(Overlay)
|
|
||||||
|
|
||||||
admin.site.register(ProblemReport, ProblemReportAdmin)
|
|
@ -1,51 +0,0 @@
|
|||||||
from piston.emitters import XMLEmitter
|
|
||||||
|
|
||||||
|
|
||||||
class EuscanXMLEmitter(XMLEmitter):
|
|
||||||
_parent = []
|
|
||||||
_known_parents = {
|
|
||||||
'vlog': 'version',
|
|
||||||
'herds': 'herd',
|
|
||||||
'maintainers': 'maintainer',
|
|
||||||
'packaged': 'version',
|
|
||||||
'upstream': 'version',
|
|
||||||
'packages': 'package',
|
|
||||||
'categories': 'category'
|
|
||||||
}
|
|
||||||
|
|
||||||
def _push_parent(self, parent):
|
|
||||||
self._parent.append(parent)
|
|
||||||
|
|
||||||
def _pop_parent(self):
|
|
||||||
if self._parent:
|
|
||||||
return self._parent.pop()
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def _current_parent(self):
|
|
||||||
if self._parent:
|
|
||||||
return self._parent[-1]
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def _name_from_parent(self):
|
|
||||||
return self._known_parents.get(self._current_parent(), 'resource')
|
|
||||||
|
|
||||||
def _to_xml(self, xml, data):
|
|
||||||
def recurse(name, xml, item):
|
|
||||||
attrs = {}
|
|
||||||
xml.startElement(name, attrs)
|
|
||||||
self._push_parent(name)
|
|
||||||
self._to_xml(xml, item)
|
|
||||||
self._pop_parent()
|
|
||||||
xml.endElement(name)
|
|
||||||
|
|
||||||
if isinstance(data, (list, tuple)):
|
|
||||||
for item in data:
|
|
||||||
name = self._name_from_parent()
|
|
||||||
recurse(name, xml, item)
|
|
||||||
elif isinstance(data, dict):
|
|
||||||
for key, value in data.iteritems():
|
|
||||||
recurse(key, xml, value)
|
|
||||||
else:
|
|
||||||
super(EuscanXMLEmitter, self)._to_xml(xml, data)
|
|
@ -1,177 +0,0 @@
|
|||||||
from piston.handler import AnonymousBaseHandler
|
|
||||||
from piston.utils import rc
|
|
||||||
|
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
|
||||||
from django.forms.models import model_to_dict
|
|
||||||
|
|
||||||
from djeuscan.models import Version, Package, Herd, Maintainer, EuscanResult, \
|
|
||||||
VersionLog
|
|
||||||
from djeuscan.helpers import catch_and_return
|
|
||||||
|
|
||||||
# replace default XMLEmitter with ours
|
|
||||||
from piston.emitters import Emitter
|
|
||||||
from .emitters import EuscanXMLEmitter
|
|
||||||
Emitter.register('xml', EuscanXMLEmitter, 'text/xml; charset=utf-8')
|
|
||||||
|
|
||||||
|
|
||||||
# /api/1.0/
|
|
||||||
class RootHandler(AnonymousBaseHandler):
|
|
||||||
allowed_methods = ('GET',)
|
|
||||||
|
|
||||||
def read(self, request):
|
|
||||||
return {'api-version': '1.0'}
|
|
||||||
|
|
||||||
|
|
||||||
# /api/1.0/statistics
|
|
||||||
class StatisticsHandler(AnonymousBaseHandler):
|
|
||||||
allowed_methods = ('GET',)
|
|
||||||
|
|
||||||
def read(self, request):
|
|
||||||
data = {}
|
|
||||||
data['n_packaged'] = Package.objects.n_packaged()
|
|
||||||
data['n_overlay'] = Package.objects.n_overlay()
|
|
||||||
data['n_versions'] = Package.objects.n_versions()
|
|
||||||
data['n_upstream'] = Package.objects.n_upstream()
|
|
||||||
data['n_packages'] = Package.objects.count()
|
|
||||||
data['n_herds'] = Herd.objects.count()
|
|
||||||
data['n_maintainers'] = Maintainer.objects.count()
|
|
||||||
data['last_scan'] = EuscanResult.objects.latest().datetime
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
# /api/1.0/maintainers
|
|
||||||
class MaintainersHandler(AnonymousBaseHandler):
|
|
||||||
allowed_methods = ('GET',)
|
|
||||||
|
|
||||||
def read(self, request):
|
|
||||||
maintainers = Package.objects.maintainers(rename=True)
|
|
||||||
|
|
||||||
return {'maintainers': maintainers}
|
|
||||||
|
|
||||||
|
|
||||||
# /api/1.0/herds
|
|
||||||
class HerdsHandler(AnonymousBaseHandler):
|
|
||||||
allowed_methods = ('GET',)
|
|
||||||
|
|
||||||
def read(self, request):
|
|
||||||
# FIXME: optimize the query, it uses 'LEFT OUTER JOIN'
|
|
||||||
# instead of 'INNER JOIN'
|
|
||||||
herds = Package.objects.herds(rename=True)
|
|
||||||
|
|
||||||
return {'herds': herds}
|
|
||||||
|
|
||||||
|
|
||||||
# /api/1.0/categories
|
|
||||||
class CategoriesHandler(AnonymousBaseHandler):
|
|
||||||
allowed_methods = ('GET',)
|
|
||||||
|
|
||||||
def read(self, request):
|
|
||||||
categories = Package.objects.categories()
|
|
||||||
|
|
||||||
return {'categories': categories}
|
|
||||||
|
|
||||||
|
|
||||||
# /api/1.0/packages/by-maintainer/
|
|
||||||
# /api/1.0/packages/by-category/
|
|
||||||
# /api/1.0/packages/by-herd/
|
|
||||||
class PackagesHandler(AnonymousBaseHandler):
|
|
||||||
allowed_methods = ('GET',)
|
|
||||||
fields = ('category', 'name', 'n_packaged', 'n_overlay', 'n_versions',
|
|
||||||
('last_version_gentoo', ('version',)),
|
|
||||||
('last_version_overlay', ('version',)),
|
|
||||||
('last_version_upstream', ('version',)))
|
|
||||||
model = Package
|
|
||||||
|
|
||||||
@catch_and_return(ObjectDoesNotExist, rc.NOT_FOUND)
|
|
||||||
def read(self, request, **kwargs):
|
|
||||||
data = {}
|
|
||||||
|
|
||||||
if 'category' in kwargs:
|
|
||||||
packages = Package.objects.for_category(
|
|
||||||
kwargs['category'],
|
|
||||||
last_versions=True
|
|
||||||
)
|
|
||||||
data = {'category': kwargs['category']}
|
|
||||||
elif 'herd' in kwargs:
|
|
||||||
herd = Herd.objects.get(herd=kwargs['herd'])
|
|
||||||
packages = Package.objects.for_herd(herd, last_versions=True)
|
|
||||||
data = {'herd': herd}
|
|
||||||
elif 'maintainer_id' in kwargs or 'maintainer_email' in kwargs:
|
|
||||||
if 'maintainer_id' in kwargs:
|
|
||||||
maintainer = Maintainer.objects.get(id=kwargs['maintainer_id'])
|
|
||||||
elif 'maintainer_email' in kwargs:
|
|
||||||
maintainer = Maintainer.objects.get(email=kwargs['maintainer_email'])
|
|
||||||
|
|
||||||
packages = Package.objects.for_maintainer(
|
|
||||||
maintainer,
|
|
||||||
last_versions=True
|
|
||||||
)
|
|
||||||
data = {'maintainer': maintainer}
|
|
||||||
|
|
||||||
data['packages'] = packages
|
|
||||||
|
|
||||||
if not data:
|
|
||||||
return rc.NOT_FOUND
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
# /api/1.0/package/
|
|
||||||
class PackageHandler(AnonymousBaseHandler):
|
|
||||||
allowed_methods = ('GET',)
|
|
||||||
|
|
||||||
@catch_and_return(ObjectDoesNotExist, rc.NOT_FOUND)
|
|
||||||
def read(self, request, category, package):
|
|
||||||
package = Package.objects.get(category=category, name=package)
|
|
||||||
|
|
||||||
versions = Version.objects.filter(package=package)
|
|
||||||
|
|
||||||
log = EuscanResult.objects.filter(package=package).\
|
|
||||||
order_by('-datetime')[:1]
|
|
||||||
log = log[0] if log else None
|
|
||||||
|
|
||||||
vlog = VersionLog.objects.for_package(package, order=True)
|
|
||||||
|
|
||||||
herds = []
|
|
||||||
for herd in package.herds.all():
|
|
||||||
herds.append(model_to_dict(herd, ['herd']))
|
|
||||||
|
|
||||||
maintainers = []
|
|
||||||
for maintainer in package.maintainers.all():
|
|
||||||
maintainers.append(model_to_dict(maintainer, ['name', 'email']))
|
|
||||||
|
|
||||||
version_log = []
|
|
||||||
for v in vlog:
|
|
||||||
v = model_to_dict(v, ['version', 'revision', 'slot', 'overlay',
|
|
||||||
'datetime', 'action'])
|
|
||||||
if v['action'] == VersionLog.VERSION_ADDED:
|
|
||||||
v['action'] = 'added'
|
|
||||||
if v['action'] == VersionLog.VERSION_REMOVED:
|
|
||||||
v['action'] = 'removed'
|
|
||||||
version_log.append(v)
|
|
||||||
|
|
||||||
upstream = []
|
|
||||||
packaged = []
|
|
||||||
for version in versions:
|
|
||||||
unpackaged = not version.packaged
|
|
||||||
version = model_to_dict(
|
|
||||||
version,
|
|
||||||
['version', 'revision', 'slot', 'overlay', 'urls']
|
|
||||||
)
|
|
||||||
if unpackaged:
|
|
||||||
upstream.append(version)
|
|
||||||
else:
|
|
||||||
packaged.append(version)
|
|
||||||
|
|
||||||
package = model_to_dict(package, ['category', 'name', 'description',
|
|
||||||
'homepage'])
|
|
||||||
package['herds'] = herds
|
|
||||||
package['maintainers'] = maintainers
|
|
||||||
package['packaged'] = packaged
|
|
||||||
package['upstream'] = upstream
|
|
||||||
package['vlog'] = version_log
|
|
||||||
if log:
|
|
||||||
package['log'] = model_to_dict(log, ['result', 'datetime'])
|
|
||||||
|
|
||||||
return package
|
|
@ -1,39 +0,0 @@
|
|||||||
from django.conf.urls.defaults import url, patterns
|
|
||||||
|
|
||||||
from piston.resource import Resource
|
|
||||||
from handlers import RootHandler, StatisticsHandler, HerdsHandler, \
|
|
||||||
CategoriesHandler, MaintainersHandler, PackagesHandler, PackageHandler
|
|
||||||
|
|
||||||
root_handler = Resource(handler=RootHandler)
|
|
||||||
statistics_handler = Resource(handler=StatisticsHandler)
|
|
||||||
herds_handler = Resource(handler=HerdsHandler)
|
|
||||||
categories_handler = Resource(handler=CategoriesHandler)
|
|
||||||
maintainers_handler = Resource(handler=MaintainersHandler)
|
|
||||||
packages_handler = Resource(handler=PackagesHandler)
|
|
||||||
package_handler = Resource(handler=PackageHandler)
|
|
||||||
|
|
||||||
urlpatterns = patterns('djeuscan.api.views',
|
|
||||||
url(r'^1.0/statistics\.(?P<emitter_format>.+)$', statistics_handler,
|
|
||||||
name='api.views.statistics'),
|
|
||||||
url(r'^1.0/herds\.(?P<emitter_format>.+)$', herds_handler,
|
|
||||||
name='api.views.herds'),
|
|
||||||
url(r'^1.0/categories\.(?P<emitter_format>.+)$', categories_handler,
|
|
||||||
name='api.views.categories'),
|
|
||||||
url(r'^1.0/maintainers\.(?P<emitter_format>.+)$', maintainers_handler,
|
|
||||||
name='api.views.maintainers'),
|
|
||||||
|
|
||||||
url(r'^1.0/packages/by-maintainer/(?P<maintainer_id>\d+)\.(?P<emitter_format>.+)$',
|
|
||||||
packages_handler, name='api.views.packages'),
|
|
||||||
url(r'^1.0/packages/by-maintainer/(?P<maintainer_email>[^/]+)\.(?P<emitter_format>.+)$',
|
|
||||||
packages_handler, name='api.views.packages'),
|
|
||||||
url(r'^1.0/packages/by-herd/(?P<herd>[\@\{\}\w+.-]*)\.(?P<emitter_format>.+)?$',
|
|
||||||
packages_handler, name='api.views.packages'),
|
|
||||||
url(r'^1.0/packages/by-category/(?P<category>[\w+][\w+.-]*)\.(?P<emitter_format>.+)?$',
|
|
||||||
packages_handler, name='api.views.packages'),
|
|
||||||
|
|
||||||
url(r'^1.0/package/(?P<category>[\w+][\w+.-]*)/(?P<package>[\w+][\w+.-]*)\.(?P<emitter_format>.+)$',
|
|
||||||
package_handler, name='api.views.package'),
|
|
||||||
|
|
||||||
url(r'^1.0/api\.(?P<emitter_format>.+)$',
|
|
||||||
root_handler, name='api.views.root'),
|
|
||||||
)
|
|
@ -1,292 +0,0 @@
|
|||||||
import os.path
|
|
||||||
import time
|
|
||||||
|
|
||||||
import rrdtool
|
|
||||||
import pylab
|
|
||||||
|
|
||||||
from django.db.models import F
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from djeuscan.models import Package
|
|
||||||
|
|
||||||
|
|
||||||
CHARTS_ROOT = os.path.join(settings.EUSCAN_ROOT, 'var', 'charts')
|
|
||||||
CHARTS_URL = os.path.join(settings.EUSCAN_ROOT, 'var', 'charts')
|
|
||||||
CHARTS_TTL = (24 * 60 * 60)
|
|
||||||
|
|
||||||
pylab.rcParams['font.size'] = 10.0
|
|
||||||
pylab.rcParams['axes.titlesize'] = 10.0
|
|
||||||
pylab.rcParams['xtick.labelsize'] = 8.0
|
|
||||||
pylab.rcParams['legend.fontsize'] = 8.0
|
|
||||||
|
|
||||||
|
|
||||||
def chart_alive(name):
|
|
||||||
path = os.path.join(CHARTS_ROOT, name)
|
|
||||||
if not os.path.exists(path):
|
|
||||||
return False
|
|
||||||
if os.path.getmtime(__file__) > os.path.getmtime(path):
|
|
||||||
return False
|
|
||||||
if os.path.getmtime(path) + CHARTS_TTL < time.time():
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def rrd_name(**kwargs):
|
|
||||||
name = ""
|
|
||||||
|
|
||||||
if 'category' in kwargs and kwargs['category']:
|
|
||||||
name = 'category-%s' % kwargs['category']
|
|
||||||
elif 'herd' in kwargs and kwargs['herd']:
|
|
||||||
name = 'herd-%d' % kwargs['herd'].id
|
|
||||||
elif 'maintainer' in kwargs and kwargs['maintainer']:
|
|
||||||
name = 'maintainer-%d' % kwargs['maintainer'].id
|
|
||||||
else:
|
|
||||||
name = 'world'
|
|
||||||
|
|
||||||
return name
|
|
||||||
|
|
||||||
|
|
||||||
def chart_name(name, **kwargs):
|
|
||||||
name = name.replace('_', '-')
|
|
||||||
|
|
||||||
if 'category' in kwargs and kwargs['category']:
|
|
||||||
name += '-%s' % kwargs['category']
|
|
||||||
if 'herd' in kwargs and kwargs['herd']:
|
|
||||||
name += '-h-%d' % kwargs['herd'].id
|
|
||||||
if 'maintainer' in kwargs and kwargs['maintainer']:
|
|
||||||
name += '-m-%d' % kwargs['maintainer'].id
|
|
||||||
|
|
||||||
for kw in ('-small', '-weekly', '-monthly', '-yearly'):
|
|
||||||
if kw in kwargs:
|
|
||||||
name += kw
|
|
||||||
|
|
||||||
return name + ".png"
|
|
||||||
|
|
||||||
|
|
||||||
def getpackages(**kwargs):
|
|
||||||
pkgs = Package.objects
|
|
||||||
|
|
||||||
if 'category' in kwargs and kwargs['category']:
|
|
||||||
pkgs = Package.objects.for_category(kwargs['category'])
|
|
||||||
if 'herd' in kwargs and kwargs['herd']:
|
|
||||||
pkgs = Package.objects.for_herd(kwargs['herd'])
|
|
||||||
if 'maintainer' in kwargs and kwargs['maintainer']:
|
|
||||||
pkgs = Package.objects.for_maintainer(kwargs['maintainer'])
|
|
||||||
|
|
||||||
return pkgs
|
|
||||||
|
|
||||||
|
|
||||||
def cached_pylab_chart(f):
|
|
||||||
def new_f(*args, **kwds):
|
|
||||||
name = chart_name(f.func_name, **kwds)
|
|
||||||
|
|
||||||
if not chart_alive(name):
|
|
||||||
f(*args, **kwds)
|
|
||||||
pylab.savefig(os.path.join(CHARTS_ROOT, name))
|
|
||||||
pylab.close()
|
|
||||||
|
|
||||||
return name
|
|
||||||
|
|
||||||
new_f.func_name = f.func_name
|
|
||||||
return new_f
|
|
||||||
|
|
||||||
|
|
||||||
@cached_pylab_chart
|
|
||||||
def pie_versions(**kwargs):
|
|
||||||
gpk = getpackages(**kwargs)
|
|
||||||
n_packaged = gpk.n_packaged()
|
|
||||||
n_overlay = gpk.n_overlay()
|
|
||||||
n_upstream = gpk.n_upstream()
|
|
||||||
|
|
||||||
pylab.figure(1, figsize=(3.5, 3.5))
|
|
||||||
|
|
||||||
if n_overlay:
|
|
||||||
labels = 'Gentoo', 'Overlays', 'Upstream'
|
|
||||||
fracs = [n_packaged, n_overlay, n_upstream]
|
|
||||||
colors = '#008000', '#0B17FD', '#FF0000'
|
|
||||||
else:
|
|
||||||
labels = 'Gentoo', 'Upstream'
|
|
||||||
fracs = [n_packaged, n_upstream]
|
|
||||||
colors = '#008000', '#FF0000'
|
|
||||||
|
|
||||||
pylab.pie(fracs, labels=labels, colors=colors, autopct='%1.1f%%',
|
|
||||||
shadow=True)
|
|
||||||
pylab.title('Versions', bbox={'facecolor': '0.8', 'pad': 5})
|
|
||||||
|
|
||||||
|
|
||||||
@cached_pylab_chart
|
|
||||||
def pie_packages(**kwargs):
|
|
||||||
gpk = getpackages(**kwargs)
|
|
||||||
n_packages = gpk.count()
|
|
||||||
n_packages_uptodate_main = gpk.filter(n_versions=F('n_packaged')).count()
|
|
||||||
n_packages_uptodate_all = gpk.filter(n_versions=F('n_packaged') + \
|
|
||||||
F('n_overlay')).count()
|
|
||||||
n_packages_outdated = n_packages - n_packages_uptodate_all
|
|
||||||
n_packages_uptodate_ovl = n_packages_uptodate_all - \
|
|
||||||
n_packages_uptodate_main
|
|
||||||
|
|
||||||
pylab.figure(1, figsize=(3.5, 3.5))
|
|
||||||
|
|
||||||
if n_packages_uptodate_ovl:
|
|
||||||
labels = 'Ok (gentoo)', 'Ok (overlays)', 'Outdated'
|
|
||||||
fracs = [n_packages_uptodate_main, n_packages_uptodate_ovl,
|
|
||||||
n_packages_outdated]
|
|
||||||
colors = '#008000', '#0B17FD', '#FF0000'
|
|
||||||
else:
|
|
||||||
labels = 'Ok (gentoo)', 'Outdated'
|
|
||||||
fracs = [n_packages_uptodate_main, n_packages_outdated]
|
|
||||||
colors = '#008000', '#FF0000'
|
|
||||||
|
|
||||||
pylab.pie(fracs, labels=labels, colors=colors, autopct='%1.1f%%',
|
|
||||||
shadow=True)
|
|
||||||
pylab.title('Packages', bbox={'facecolor': '0.8', 'pad': 5})
|
|
||||||
|
|
||||||
|
|
||||||
def rrd_path(name):
|
|
||||||
res = str(os.path.join(settings.RRD_ROOT, name))
|
|
||||||
if res.endswith(".rrd"):
|
|
||||||
return res
|
|
||||||
else:
|
|
||||||
return res + ".rrd"
|
|
||||||
|
|
||||||
|
|
||||||
def rrd_create(name, start=None):
|
|
||||||
if start is None:
|
|
||||||
start = int(time.time())
|
|
||||||
|
|
||||||
path = rrd_path(name)
|
|
||||||
if not os.path.exists(path):
|
|
||||||
rrdtool.create(path, '--step', '86400',
|
|
||||||
'--start', '%s' % int(start - 10),
|
|
||||||
'DS:n_packages_gentoo:GAUGE:4294967295:0:U',
|
|
||||||
'DS:n_packages_overlay:GAUGE:4294967295:0:U',
|
|
||||||
'DS:n_packages_outdated:GAUGE:4294967295:0:U',
|
|
||||||
'DS:n_versions_gentoo:GAUGE:4294967295:0:U',
|
|
||||||
'DS:n_versions_overlay:GAUGE:4294967295:0:U',
|
|
||||||
'DS:n_versions_upstream:GAUGE:4294967295:0:U',
|
|
||||||
'RRA:AVERAGE:0.5:1:100',
|
|
||||||
'RRA:AVERAGE:0.5:5:200',
|
|
||||||
'RRA:AVERAGE:0.5:10:200')
|
|
||||||
|
|
||||||
|
|
||||||
def rrd_update(name, datetime, values):
|
|
||||||
now = time.mktime(datetime.timetuple())
|
|
||||||
rrd_create(name, now)
|
|
||||||
rrdtool.update(
|
|
||||||
rrd_path(name),
|
|
||||||
'%d:%d:%d:%d:%d:%d:%d' % \
|
|
||||||
(now, values.n_packages_gentoo, values.n_packages_overlay,
|
|
||||||
values.n_packages_outdated, values.n_versions_gentoo,
|
|
||||||
values.n_versions_overlay, values.n_versions_upstream)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
[-s|--start time] [-e|--end time] [-S|--step seconds]
|
|
||||||
[-t|--title string] [-v|--vertical-label string]
|
|
||||||
[-w|--width pixels] [-h|--height pixels] [-j|--only-graph]
|
|
||||||
[-D|--full-size-mode][-u|--upper-limit value] [-l|--lower-limit value]
|
|
||||||
[-u|--upper-limit value] [-l|--lower-limit value] [-r|--rigid]
|
|
||||||
[-A|--alt-autoscale]
|
|
||||||
[-M|--alt-autoscale-max]
|
|
||||||
[-J|--alt-autoscale-min]
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def cached_rrd_chart(f):
|
|
||||||
def new_f(*args, **kwds):
|
|
||||||
if 'period' not in kwds:
|
|
||||||
kwds['period'] = '-yearly'
|
|
||||||
|
|
||||||
name = chart_name(f.func_name, **kwds)
|
|
||||||
path = os.path.join(CHARTS_ROOT, name)
|
|
||||||
|
|
||||||
if not chart_alive(name):
|
|
||||||
kwds['title'] = '%s (%s)' % (f.func_name, kwds['period'])
|
|
||||||
kwds['steps'] = kwds['period']
|
|
||||||
kwds['vertical-label'] = f.func_name
|
|
||||||
|
|
||||||
kwds['rrd'] = rrd_path(rrd_name(**kwds))
|
|
||||||
rrd_create(kwds['rrd']) # create the rrd file if it's not present
|
|
||||||
|
|
||||||
kwds['path'] = path
|
|
||||||
|
|
||||||
kwds['end'] = 'now'
|
|
||||||
|
|
||||||
if kwds['period'] == '-weekly':
|
|
||||||
kwds['start'] = 'now-4weeks'
|
|
||||||
elif kwds['period'] == '-monthly':
|
|
||||||
kwds['start'] = 'now-12months'
|
|
||||||
else:
|
|
||||||
kwds['start'] = 'now-4years'
|
|
||||||
|
|
||||||
if '-small' in kwds and kwds['-small']:
|
|
||||||
kwds['width'] = '100'
|
|
||||||
kwds['height'] = '30'
|
|
||||||
kwds['graph-mode'] = '--only-graph'
|
|
||||||
else:
|
|
||||||
kwds['width'] = '500'
|
|
||||||
kwds['height'] = '170'
|
|
||||||
kwds['graph-mode'] = '--full-size-mode'
|
|
||||||
|
|
||||||
f(*args, **kwds)
|
|
||||||
|
|
||||||
return name
|
|
||||||
|
|
||||||
new_f.func_name = f.func_name
|
|
||||||
return new_f
|
|
||||||
|
|
||||||
|
|
||||||
@cached_rrd_chart
|
|
||||||
def packages(**kwargs):
|
|
||||||
path = str(kwargs['path'])
|
|
||||||
rrd = kwargs['rrd']
|
|
||||||
|
|
||||||
rrdtool.graph(
|
|
||||||
path,
|
|
||||||
'--imgformat', 'PNG',
|
|
||||||
'--width', kwargs['width'],
|
|
||||||
'--height', kwargs['height'],
|
|
||||||
kwargs['graph-mode'],
|
|
||||||
'--color', 'CANVAS#FFFFFF00',
|
|
||||||
'--color', 'BACK#FFFFFF00',
|
|
||||||
|
|
||||||
'--start', kwargs['start'],
|
|
||||||
'--end', kwargs['end'],
|
|
||||||
'--vertical-label', kwargs['vertical-label'],
|
|
||||||
'--title', kwargs['title'],
|
|
||||||
'--lower-limit', '0',
|
|
||||||
'DEF:n_packages_gentoo=%s:n_packages_gentoo:AVERAGE' % rrd,
|
|
||||||
'DEF:n_packages_overlay=%s:n_packages_overlay:AVERAGE' % rrd,
|
|
||||||
'DEF:n_packages_outdated=%s:n_packages_outdated:AVERAGE' % rrd,
|
|
||||||
'LINE1.25:n_packages_gentoo#008000:Gentoo',
|
|
||||||
'LINE1.25:n_packages_overlay#0B17FD:Overlay',
|
|
||||||
'LINE1.25:n_packages_outdated#FF0000:Outdated'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@cached_rrd_chart
|
|
||||||
def versions(**kwargs):
|
|
||||||
path = str(kwargs['path'])
|
|
||||||
rrd = kwargs['rrd']
|
|
||||||
|
|
||||||
rrdtool.graph(
|
|
||||||
path,
|
|
||||||
'--imgformat', 'PNG',
|
|
||||||
'--width', kwargs['width'],
|
|
||||||
'--height', kwargs['height'],
|
|
||||||
kwargs['graph-mode'],
|
|
||||||
'--color', 'CANVAS#FFFFFF00',
|
|
||||||
'--color', 'BACK#FFFFFF00',
|
|
||||||
'--start', kwargs['start'],
|
|
||||||
'--end', kwargs['end'],
|
|
||||||
'--vertical-label', kwargs['vertical-label'],
|
|
||||||
'--title', kwargs['title'],
|
|
||||||
'--lower-limit', '0',
|
|
||||||
'DEF:n_versions_gentoo=%s:n_versions_gentoo:AVERAGE' % rrd,
|
|
||||||
'DEF:n_versions_overlay=%s:n_versions_overlay:AVERAGE' % rrd,
|
|
||||||
'DEF:n_versions_outdated=%s:n_versions_upstream:AVERAGE' % rrd,
|
|
||||||
'LINE1.25:n_versions_gentoo#008000:Gentoo',
|
|
||||||
'LINE1.25:n_versions_overlay#0B17FD:Overlay',
|
|
||||||
'LINE1.25:n_versions_outdated#FF0000:Outdated'
|
|
||||||
)
|
|
@ -1,325 +0,0 @@
|
|||||||
import json
|
|
||||||
from urllib import urlencode
|
|
||||||
|
|
||||||
from django.contrib.syndication.views import Feed, FeedDoesNotExist
|
|
||||||
from django.shortcuts import get_object_or_404
|
|
||||||
from django.utils.feedgenerator import Atom1Feed
|
|
||||||
from django.core.urlresolvers import reverse
|
|
||||||
from django.db.models import Q
|
|
||||||
|
|
||||||
from euscan.version import gentoo_unstable
|
|
||||||
|
|
||||||
from djeuscan.models import Package, Herd, Maintainer, Version, VersionLog
|
|
||||||
|
|
||||||
from euscan_accounts.helpers import get_profile
|
|
||||||
|
|
||||||
|
|
||||||
class StabilizationCandidatesFeed(Feed):
|
|
||||||
feed_type = Atom1Feed
|
|
||||||
author_name = 'euscan'
|
|
||||||
item_author_name = author_name
|
|
||||||
title = 'Stabilization candidates'
|
|
||||||
link = "/"
|
|
||||||
description = "Stabilization candidates"
|
|
||||||
ttl = 3600
|
|
||||||
|
|
||||||
def item_title(self, version):
|
|
||||||
return version.cpv()
|
|
||||||
|
|
||||||
def item_description(self, version):
|
|
||||||
cpv = version.cpv()
|
|
||||||
maintainers = herds = ""
|
|
||||||
|
|
||||||
if version.package.maintainers.all():
|
|
||||||
maintainers = "Maintainers: {}\n".format(
|
|
||||||
", ".join(str(m) for m in version.package.maintainers.all())
|
|
||||||
)
|
|
||||||
|
|
||||||
if version.package.herds.all():
|
|
||||||
herds = "Herds: {}\n".format(
|
|
||||||
", ".join(str(h) for h in version.package.herds.all())
|
|
||||||
)
|
|
||||||
|
|
||||||
bugs_link = "https://bugs.gentoo.org/buglist.cgi?quicksearch={}"
|
|
||||||
|
|
||||||
comment = """
|
|
||||||
This bug was filed via euscan
|
|
||||||
|
|
||||||
How much have you used the package in question?
|
|
||||||
|
|
||||||
Have you had any problems with the package?
|
|
||||||
|
|
||||||
emerge --info:
|
|
||||||
|
|
||||||
Other info:
|
|
||||||
{} {}
|
|
||||||
""".format(herds, maintainers)
|
|
||||||
comment = "\n".join([line.lstrip() for line in comment.split("\n")])
|
|
||||||
description = """
|
|
||||||
Added to tree: {date}<br/>
|
|
||||||
{herds} <br />
|
|
||||||
{maintainers}<br />
|
|
||||||
Open bugs for {cat_pn}:
|
|
||||||
<a href="{cat_bugs}">Show</a><br />
|
|
||||||
Open bugs for {pn}:
|
|
||||||
<a href="{pn_bugs}">Show</a><br />
|
|
||||||
<a href="{submit_bug}">File bug </a>
|
|
||||||
""".format(
|
|
||||||
date=version.stabilization_candidate,
|
|
||||||
herds=herds,
|
|
||||||
maintainers=maintainers,
|
|
||||||
cat_pn=version.package.cp(),
|
|
||||||
cat_bugs=bugs_link.format(version.package.cp()),
|
|
||||||
pn=version.package.name,
|
|
||||||
pn_bugs=bugs_link.format(version.package.name),
|
|
||||||
submit_bug='https://bugs.gentoo.org/enter_bug.cgi?{}'.format(
|
|
||||||
urlencode({
|
|
||||||
"product": 'Gentoo Linux',
|
|
||||||
"short_desc": "Stable request for {}".format(cpv),
|
|
||||||
"comment": comment,
|
|
||||||
"keywords": 'STABLEREQ',
|
|
||||||
})
|
|
||||||
),
|
|
||||||
)
|
|
||||||
return description
|
|
||||||
|
|
||||||
def item_link(self, version):
|
|
||||||
kwargs = {'category': version.package.category,
|
|
||||||
'package': version.package.name}
|
|
||||||
return "%s#version-%s" % (
|
|
||||||
reverse('djeuscan.views.package', kwargs=kwargs), version.tag
|
|
||||||
)
|
|
||||||
|
|
||||||
def item_categories(self):
|
|
||||||
return ["stabilization_candidate"]
|
|
||||||
|
|
||||||
def items(self):
|
|
||||||
versions = Version.objects.exclude(stabilization_candidate=None)
|
|
||||||
return versions.order_by("-stabilization_candidate")
|
|
||||||
|
|
||||||
|
|
||||||
class BaseFeed(Feed):
|
|
||||||
feed_type = Atom1Feed
|
|
||||||
author_name = 'euscan'
|
|
||||||
item_author_name = author_name
|
|
||||||
ttl = 3600
|
|
||||||
|
|
||||||
def item_title(self, vlog):
|
|
||||||
return str(vlog)
|
|
||||||
|
|
||||||
def item_description(self, vlog):
|
|
||||||
if vlog.overlay:
|
|
||||||
txt = 'Version %s-%s [%s] of package %s ' % \
|
|
||||||
(vlog.version, vlog.revision, vlog.slot, vlog.package)
|
|
||||||
else:
|
|
||||||
txt = 'Version %s of package %s ' % (vlog.version, vlog.package)
|
|
||||||
if vlog.action == vlog.VERSION_REMOVED:
|
|
||||||
if not vlog.overlay:
|
|
||||||
txt += 'has been removed upstream'
|
|
||||||
else:
|
|
||||||
txt += 'has been removed from overlay "%s"' % vlog.overlay
|
|
||||||
if vlog.action == vlog.VERSION_ADDED:
|
|
||||||
if not vlog.overlay:
|
|
||||||
txt += 'has been added upstream'
|
|
||||||
else:
|
|
||||||
txt += 'has been added to overlay "%s"' % vlog.overlay
|
|
||||||
|
|
||||||
return txt
|
|
||||||
|
|
||||||
def item_link(self, vlog):
|
|
||||||
kwargs = {'category': vlog.package.category,
|
|
||||||
'package': vlog.package.name}
|
|
||||||
return "%s#version-%s" % (
|
|
||||||
reverse('djeuscan.views.package', kwargs=kwargs), vlog.tag
|
|
||||||
)
|
|
||||||
|
|
||||||
def item_pubdate(self, vlog):
|
|
||||||
return vlog.datetime
|
|
||||||
|
|
||||||
def item_categories(self, vlog):
|
|
||||||
return [vlog.package.category]
|
|
||||||
|
|
||||||
def items(self, data=None):
|
|
||||||
user = data.get("user", None) if data else None
|
|
||||||
options = data.get("options", {}) if data else {}
|
|
||||||
|
|
||||||
# first of all consider options, then user preferences
|
|
||||||
try:
|
|
||||||
upstream_info = json.loads(options.get("upstream_info", "1"))
|
|
||||||
portage_info = json.loads(options.get("portage_info", "1"))
|
|
||||||
show_adds = json.loads(options.get("show_adds", "1"))
|
|
||||||
show_removals = json.loads(options.get("show_removals", "1"))
|
|
||||||
ignore_pre = json.loads(options.get("ignore_pre", "0"))
|
|
||||||
ignore_pre_if_stable = json.loads(
|
|
||||||
options.get("ignore_pre_if_stable", "0")
|
|
||||||
)
|
|
||||||
except ValueError:
|
|
||||||
return []
|
|
||||||
|
|
||||||
if user and not options:
|
|
||||||
profile = get_profile(user)
|
|
||||||
upstream_info = profile.feed_upstream_info
|
|
||||||
portage_info = profile.feed_portage_info
|
|
||||||
show_adds = profile.feed_show_adds
|
|
||||||
show_removals = profile.feed_show_removals
|
|
||||||
ignore_pre = profile.feed_ignore_pre
|
|
||||||
ignore_pre_if_stable = profile.feed_ignore_pre_if_stable
|
|
||||||
|
|
||||||
ret, max_items = self._items(data)
|
|
||||||
|
|
||||||
if not upstream_info:
|
|
||||||
ret = ret.exclude(overlay="")
|
|
||||||
if not portage_info:
|
|
||||||
ret = ret.exclude(~Q(overlay=""))
|
|
||||||
if not show_adds:
|
|
||||||
ret = ret.exclude(action=VersionLog.VERSION_ADDED)
|
|
||||||
if not show_removals:
|
|
||||||
ret = ret.exclude(action=VersionLog.VERSION_REMOVED)
|
|
||||||
if ignore_pre:
|
|
||||||
ret = ret.exclude(vtype__in=gentoo_unstable)
|
|
||||||
if ignore_pre_if_stable:
|
|
||||||
ret = ret.exclude(
|
|
||||||
~Q(package__last_version_gentoo__vtype__in=gentoo_unstable),
|
|
||||||
vtype__in=gentoo_unstable
|
|
||||||
)
|
|
||||||
|
|
||||||
return ret.order_by("-datetime")[:max_items]
|
|
||||||
|
|
||||||
|
|
||||||
class GlobalFeed(BaseFeed):
|
|
||||||
title = "euscan"
|
|
||||||
link = "/"
|
|
||||||
description = "Last euscan changes"
|
|
||||||
|
|
||||||
def get_object(self, request):
|
|
||||||
return {"options": request.GET}
|
|
||||||
|
|
||||||
def categories(self, data):
|
|
||||||
categories = Package.objects.categories()
|
|
||||||
return [category['category'] for category in categories]
|
|
||||||
|
|
||||||
def _items(self, data):
|
|
||||||
return VersionLog.objects.all(), 250
|
|
||||||
|
|
||||||
|
|
||||||
class PackageFeed(BaseFeed):
|
|
||||||
feed_type = Atom1Feed
|
|
||||||
|
|
||||||
def get_object(self, request, category, package):
|
|
||||||
return {
|
|
||||||
"obj": get_object_or_404(Package, category=category, name=package),
|
|
||||||
"options": request.GET,
|
|
||||||
}
|
|
||||||
|
|
||||||
def title(self, data):
|
|
||||||
return "%s" % data["obj"]
|
|
||||||
|
|
||||||
def link(self, data):
|
|
||||||
return reverse('djeuscan.views.package', args=[data["obj"].category,
|
|
||||||
data["obj"].name])
|
|
||||||
|
|
||||||
def description(self, data):
|
|
||||||
return data["obj"].description
|
|
||||||
|
|
||||||
def _items(self, data):
|
|
||||||
return VersionLog.objects.for_package(data["obj"]), 30
|
|
||||||
|
|
||||||
def item_description(self, vlog):
|
|
||||||
return ''
|
|
||||||
|
|
||||||
|
|
||||||
class MaintainerFeed(BaseFeed):
|
|
||||||
feed_type = Atom1Feed
|
|
||||||
|
|
||||||
def get_object(self, request, maintainer_id=None, maintainer_email=None):
|
|
||||||
if maintainer_id:
|
|
||||||
obj = get_object_or_404(Maintainer, id=maintainer_id)
|
|
||||||
else:
|
|
||||||
obj = get_object_or_404(Maintainer, email=maintainer_email)
|
|
||||||
|
|
||||||
return {
|
|
||||||
"obj": obj,
|
|
||||||
"options": request.GET,
|
|
||||||
}
|
|
||||||
|
|
||||||
def title(self, data):
|
|
||||||
return "%s" % data["obj"]
|
|
||||||
|
|
||||||
def description(self, data):
|
|
||||||
return "Last changes for %s" % data["obj"]
|
|
||||||
|
|
||||||
def link(self, data):
|
|
||||||
return reverse('djeuscan.views.maintainer', args=[data["obj"].email])
|
|
||||||
|
|
||||||
def _items(self, data):
|
|
||||||
return VersionLog.objects.for_maintainer(data["obj"]), 50
|
|
||||||
|
|
||||||
|
|
||||||
class HerdFeed(BaseFeed):
|
|
||||||
feed_type = Atom1Feed
|
|
||||||
|
|
||||||
def get_object(self, request, herd):
|
|
||||||
return {
|
|
||||||
"obj": get_object_or_404(Herd, herd=herd),
|
|
||||||
"options": request.GET,
|
|
||||||
}
|
|
||||||
|
|
||||||
def title(self, data):
|
|
||||||
return "%s" % data["obj"]
|
|
||||||
|
|
||||||
def description(self, data):
|
|
||||||
return "Last changes for %s" % data["obj"]
|
|
||||||
|
|
||||||
def link(self, data):
|
|
||||||
return reverse('djeuscan.views.herd',
|
|
||||||
kwargs={'herd': data["obj"].herd})
|
|
||||||
|
|
||||||
def _items(self, data):
|
|
||||||
return VersionLog.objects.for_herd(data["obj"]), 100
|
|
||||||
|
|
||||||
|
|
||||||
class CategoryFeed(BaseFeed):
|
|
||||||
feed_type = Atom1Feed
|
|
||||||
|
|
||||||
def get_object(self, request, category):
|
|
||||||
if not Package.objects.categories().count():
|
|
||||||
raise FeedDoesNotExist
|
|
||||||
return {
|
|
||||||
"obj": category,
|
|
||||||
"options": request.GET,
|
|
||||||
}
|
|
||||||
|
|
||||||
def title(self, data):
|
|
||||||
return "%s" % data["obj"]
|
|
||||||
|
|
||||||
def description(self, data):
|
|
||||||
return "Last changes for %s" % data["obj"]
|
|
||||||
|
|
||||||
def link(self, data):
|
|
||||||
return reverse('djeuscan.views.category', args=[data["obj"]])
|
|
||||||
|
|
||||||
def _items(self, data):
|
|
||||||
return VersionLog.objects.for_category(data["obj"]), 100
|
|
||||||
|
|
||||||
|
|
||||||
class WorldScanFeed(BaseFeed):
|
|
||||||
link = "/"
|
|
||||||
|
|
||||||
def get_object(self, request):
|
|
||||||
return {
|
|
||||||
"options": request.GET,
|
|
||||||
}
|
|
||||||
|
|
||||||
def _items(self, data):
|
|
||||||
packages = []
|
|
||||||
for pkg_name in data["options"].getlist("p", []):
|
|
||||||
if "/" in pkg_name:
|
|
||||||
cat, name = pkg_name.split("/", 1)
|
|
||||||
pkg = Package.objects.filter(name=name, category=cat)
|
|
||||||
else:
|
|
||||||
pkg = Package.objects.filter(name=pkg_name)
|
|
||||||
packages.extend(pkg)
|
|
||||||
|
|
||||||
vlogs = VersionLog.objects.filter(package__in=packages)
|
|
||||||
|
|
||||||
return vlogs, 100
|
|
@ -1,28 +0,0 @@
|
|||||||
from django import forms
|
|
||||||
from djeuscan.models import Version, ProblemReport
|
|
||||||
|
|
||||||
|
|
||||||
class WorldForm(forms.Form):
|
|
||||||
world = forms.FileField()
|
|
||||||
|
|
||||||
|
|
||||||
class PackagesForm(forms.Form):
|
|
||||||
packages = forms.CharField(widget=forms.Textarea)
|
|
||||||
|
|
||||||
|
|
||||||
class ProblemReportForm(forms.ModelForm):
|
|
||||||
version = forms.ModelChoiceField(queryset=Version.objects.all(),
|
|
||||||
empty_label="all", required=False)
|
|
||||||
message = forms.CharField(
|
|
||||||
widget=forms.Textarea(attrs={'cols': 80, 'rows': 15})
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(self, package, *args, **kwargs):
|
|
||||||
super(ProblemReportForm, self).__init__(*args, **kwargs)
|
|
||||||
self.fields["version"].queryset = Version.objects.filter(
|
|
||||||
package=package
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = ProblemReport
|
|
||||||
fields = ('version', 'subject', 'message')
|
|
@ -1,100 +0,0 @@
|
|||||||
"""
|
|
||||||
djeuscan.helpers
|
|
||||||
"""
|
|
||||||
|
|
||||||
from distutils.version import StrictVersion, LooseVersion
|
|
||||||
from django.shortcuts import get_object_or_404
|
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
from layman import Layman
|
|
||||||
|
|
||||||
from portage.util import getconfig
|
|
||||||
|
|
||||||
|
|
||||||
def xint(i):
|
|
||||||
"""
|
|
||||||
Tries to cast to int, fallbacks to 0
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
return int(i)
|
|
||||||
except Exception:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
def select_related_last_versions(queryset):
|
|
||||||
queryset = queryset.select_related(
|
|
||||||
'last_version_gentoo',
|
|
||||||
'last_version_overlay',
|
|
||||||
'last_version_upstream'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def version_key(version):
|
|
||||||
version = version.version
|
|
||||||
try:
|
|
||||||
return StrictVersion(version)
|
|
||||||
# in case of abnormal version number, fall back to LooseVersion
|
|
||||||
except ValueError:
|
|
||||||
return LooseVersion(version)
|
|
||||||
|
|
||||||
|
|
||||||
def packages_from_names(data):
|
|
||||||
"""
|
|
||||||
Returns a list of Package objects from a string of names
|
|
||||||
"""
|
|
||||||
|
|
||||||
from djeuscan.models import Package
|
|
||||||
|
|
||||||
packages = []
|
|
||||||
data = data.replace("\r", "")
|
|
||||||
|
|
||||||
for pkg in data.split('\n'):
|
|
||||||
if pkg.count('/') == 1:
|
|
||||||
cat, pkg = pkg.split('/')
|
|
||||||
packages.extend(Package.objects.filter(category=cat, name=pkg))
|
|
||||||
else:
|
|
||||||
packages.extend(Package.objects.filter(name=pkg))
|
|
||||||
return packages
|
|
||||||
|
|
||||||
|
|
||||||
def rename_fields(vqs, fields):
|
|
||||||
ret = []
|
|
||||||
for n in vqs:
|
|
||||||
for tr in fields:
|
|
||||||
if tr[0] in n:
|
|
||||||
n[tr[1]] = n[tr[0]]
|
|
||||||
del n[tr[0]]
|
|
||||||
ret.append(n)
|
|
||||||
return ret
|
|
||||||
|
|
||||||
|
|
||||||
class catch_and_return(object):
|
|
||||||
def __init__(self, err, response):
|
|
||||||
self.err = err
|
|
||||||
self.response = response
|
|
||||||
|
|
||||||
def __call__(self, fn):
|
|
||||||
def wrapper(*args, **kwargs):
|
|
||||||
try:
|
|
||||||
return fn(*args, **kwargs)
|
|
||||||
except self.err:
|
|
||||||
return self.response
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
|
|
||||||
def get_maintainer_or_404(id=None, email=None):
|
|
||||||
from djeuscan.models import Maintainer
|
|
||||||
if id:
|
|
||||||
return get_object_or_404(Maintainer, pk=id)
|
|
||||||
else:
|
|
||||||
return get_object_or_404(Maintainer, email=email)
|
|
||||||
|
|
||||||
|
|
||||||
def get_make_conf():
|
|
||||||
return getconfig(settings.MAKE_CONF, tolerant=1, allow_sourcing=True)
|
|
||||||
|
|
||||||
|
|
||||||
def get_layman_repos():
|
|
||||||
lay = Layman(config=settings.LAYMAN_CONFIG)
|
|
||||||
installed_overlays = lay.get_installed()
|
|
||||||
return lay.get_all_info(installed_overlays)
|
|
@ -1,64 +0,0 @@
|
|||||||
import sys
|
|
||||||
from optparse import make_option
|
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
from djeuscan.models import Package
|
|
||||||
|
|
||||||
|
|
||||||
def list_packages(stdout=None, **options):
|
|
||||||
if stdout is None:
|
|
||||||
stdout = sys.stdout
|
|
||||||
|
|
||||||
after = None
|
|
||||||
before = None
|
|
||||||
|
|
||||||
if options['after']:
|
|
||||||
category, name = options['after'].split('/')
|
|
||||||
after = Package.objects.get(category=category, name=name)
|
|
||||||
|
|
||||||
if options['before']:
|
|
||||||
category, name = options['before'].split('/')
|
|
||||||
before = Package.objects.get(category=category, name=name)
|
|
||||||
|
|
||||||
packages = Package.objects
|
|
||||||
|
|
||||||
if after or before:
|
|
||||||
if after:
|
|
||||||
packages = packages.filter(id__gte=after.id)
|
|
||||||
if before:
|
|
||||||
packages = packages.filter(id__lte=before.id)
|
|
||||||
else:
|
|
||||||
packages = packages.all()
|
|
||||||
|
|
||||||
if options['limit']:
|
|
||||||
packages = packages[:int(options['limit'])]
|
|
||||||
|
|
||||||
for pkg in packages:
|
|
||||||
stdout.write('%s/%s\n' % (pkg.category, pkg.name))
|
|
||||||
stdout.close()
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
help = 'List packages'
|
|
||||||
|
|
||||||
option_list = BaseCommand.option_list + (
|
|
||||||
make_option('--after',
|
|
||||||
action='store',
|
|
||||||
dest='after',
|
|
||||||
default=False,
|
|
||||||
help='After package'),
|
|
||||||
make_option('--before',
|
|
||||||
action='store',
|
|
||||||
dest='before',
|
|
||||||
default=False,
|
|
||||||
help='Before package'),
|
|
||||||
make_option('--limit',
|
|
||||||
action='store',
|
|
||||||
dest='limit',
|
|
||||||
default=False,
|
|
||||||
help='limit'),
|
|
||||||
)
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
list_packages(self.stdout, **options)
|
|
@ -1,16 +0,0 @@
|
|||||||
import logging
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
from djeuscan.processing import set_verbosity_level
|
|
||||||
from djeuscan.processing.misc import regen_rrds
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
help = 'Regenerate rrd database'
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
set_verbosity_level(logger, options.get("verbosity", 1))
|
|
||||||
regen_rrds(logger=logger)
|
|
@ -1,52 +0,0 @@
|
|||||||
import sys
|
|
||||||
import logging
|
|
||||||
from optparse import make_option
|
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
from djeuscan.processing import set_verbosity_level
|
|
||||||
from djeuscan.processing.scan import scan_metadata
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
|
|
||||||
option_list = BaseCommand.option_list + (
|
|
||||||
make_option('--all',
|
|
||||||
action='store_true',
|
|
||||||
dest='all',
|
|
||||||
default=False,
|
|
||||||
help='Scan all packages'),
|
|
||||||
make_option('--category',
|
|
||||||
action='store',
|
|
||||||
dest='category',
|
|
||||||
default=None,
|
|
||||||
help='Scan only this category'),
|
|
||||||
make_option('--populate',
|
|
||||||
action='store_true',
|
|
||||||
dest='populate',
|
|
||||||
default=False,
|
|
||||||
help='Populate herds and maintainers from herds.xml'),
|
|
||||||
)
|
|
||||||
args = '<package package ...>'
|
|
||||||
help = 'Scans metadata and fills database'
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
set_verbosity_level(logger, options.get("verbosity", 1))
|
|
||||||
|
|
||||||
if options['all'] or options['category']:
|
|
||||||
packages = None
|
|
||||||
|
|
||||||
elif len(args):
|
|
||||||
packages = [pkg for pkg in args]
|
|
||||||
else:
|
|
||||||
packages = [pkg[:-1] for pkg in sys.stdin.readlines()]
|
|
||||||
|
|
||||||
scan_metadata(
|
|
||||||
packages=packages,
|
|
||||||
category=options['category'],
|
|
||||||
logger=logger,
|
|
||||||
populate=options['populate'],
|
|
||||||
)
|
|
@ -1,69 +0,0 @@
|
|||||||
import sys
|
|
||||||
import logging
|
|
||||||
from optparse import make_option
|
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
from djeuscan.processing import set_verbosity_level
|
|
||||||
from djeuscan.processing.scan import scan_portage
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
|
|
||||||
option_list = BaseCommand.option_list + (
|
|
||||||
make_option('--all',
|
|
||||||
action='store_true',
|
|
||||||
dest='all',
|
|
||||||
default=False,
|
|
||||||
help='Scan all packages'),
|
|
||||||
make_option('--category',
|
|
||||||
action='store',
|
|
||||||
dest='category',
|
|
||||||
default=None,
|
|
||||||
help='Scan only this category'),
|
|
||||||
make_option('--purge-packages',
|
|
||||||
action='store_true',
|
|
||||||
dest='purge-packages',
|
|
||||||
default=False,
|
|
||||||
help='Purge old packages'),
|
|
||||||
make_option('--purge-versions',
|
|
||||||
action='store_true',
|
|
||||||
dest='purge-versions',
|
|
||||||
default=False,
|
|
||||||
help='Purge old versions'),
|
|
||||||
make_option('--upstream',
|
|
||||||
action='store_true',
|
|
||||||
dest='upstream',
|
|
||||||
default=False,
|
|
||||||
help='Scan upstream for updated packages in Portage'),
|
|
||||||
make_option('--no-log',
|
|
||||||
action='store_true',
|
|
||||||
dest='no-log',
|
|
||||||
default=False,
|
|
||||||
help='Don\'t store logs'),
|
|
||||||
)
|
|
||||||
args = '[package package ...]'
|
|
||||||
help = 'Scans portage tree and fills database'
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
set_verbosity_level(logger, options.get("verbosity", 1))
|
|
||||||
|
|
||||||
if options['all'] or options['category']:
|
|
||||||
packages = None
|
|
||||||
elif len(args):
|
|
||||||
packages = [pkg for pkg in args]
|
|
||||||
else:
|
|
||||||
packages = [pkg[:-1] for pkg in sys.stdin.readlines()]
|
|
||||||
|
|
||||||
scan_portage(
|
|
||||||
packages=packages,
|
|
||||||
category=options['category'],
|
|
||||||
no_log=options["no-log"],
|
|
||||||
purge_packages=options["purge-packages"],
|
|
||||||
purge_versions=options["purge-versions"],
|
|
||||||
upstream=options["upstream"],
|
|
||||||
logger=logger,
|
|
||||||
)
|
|
@ -1,45 +0,0 @@
|
|||||||
import logging
|
|
||||||
import sys
|
|
||||||
from optparse import make_option
|
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
from djeuscan.processing import set_verbosity_level
|
|
||||||
from djeuscan.processing.scan import scan_upstream
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
|
|
||||||
option_list = BaseCommand.option_list + (
|
|
||||||
make_option('--all',
|
|
||||||
action='store_true',
|
|
||||||
dest='all',
|
|
||||||
default=False,
|
|
||||||
help='Scan all packages'),
|
|
||||||
make_option('--purge-versions',
|
|
||||||
action='store_true',
|
|
||||||
dest='purge-versions',
|
|
||||||
default=False,
|
|
||||||
help='Purge old versions'),
|
|
||||||
)
|
|
||||||
args = '<package package ...>'
|
|
||||||
help = 'Scans metadata and fills database'
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
set_verbosity_level(logger, options.get("verbosity", 1))
|
|
||||||
|
|
||||||
if options['all']:
|
|
||||||
packages = None
|
|
||||||
|
|
||||||
elif len(args):
|
|
||||||
packages = [pkg for pkg in args]
|
|
||||||
else:
|
|
||||||
packages = [pkg[:-1] for pkg in sys.stdin.readlines()]
|
|
||||||
|
|
||||||
scan_upstream(
|
|
||||||
packages=packages,
|
|
||||||
purge_versions=options["purge-versions"],
|
|
||||||
logger=logger,
|
|
||||||
)
|
|
@ -1,28 +0,0 @@
|
|||||||
import logging
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
from djeuscan.processing import set_verbosity_level
|
|
||||||
from djeuscan.processing.misc import stabilization_candidates
|
|
||||||
from optparse import make_option
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
|
|
||||||
option_list = BaseCommand.option_list + (
|
|
||||||
make_option(
|
|
||||||
'-d',
|
|
||||||
'--days-to-candidate',
|
|
||||||
action='store_true',
|
|
||||||
dest='all',
|
|
||||||
default=30,
|
|
||||||
help='Minimum of days to be in tree for becoming stable.'
|
|
||||||
),
|
|
||||||
)
|
|
||||||
help = 'Collects stabilization candidates'
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
set_verbosity_level(logger, options.get("verbosity", 1))
|
|
||||||
stabilization_candidates(logger=logger)
|
|
@ -1,35 +0,0 @@
|
|||||||
import logging
|
|
||||||
from optparse import make_option
|
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
from djeuscan.processing import set_verbosity_level
|
|
||||||
from djeuscan.processing.misc import update_counters
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
help = 'Update counters'
|
|
||||||
|
|
||||||
option_list = BaseCommand.option_list + (
|
|
||||||
make_option('--fast',
|
|
||||||
action='store_true',
|
|
||||||
dest='fast',
|
|
||||||
default=False,
|
|
||||||
help='Skip sanity checks'),
|
|
||||||
make_option('--nolog',
|
|
||||||
action='store_true',
|
|
||||||
dest='nolog',
|
|
||||||
default=False,
|
|
||||||
help='Skip logs'),
|
|
||||||
)
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
set_verbosity_level(logger, options.get("verbosity", 1))
|
|
||||||
update_counters(
|
|
||||||
fast=options["fast"],
|
|
||||||
nolog=options["nolog"],
|
|
||||||
logger=logger,
|
|
||||||
)
|
|
@ -1,16 +0,0 @@
|
|||||||
import logging
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
from djeuscan.processing import set_verbosity_level
|
|
||||||
from djeuscan.processing.misc import update_portage_trees
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
_overlays = {}
|
|
||||||
help = 'Regenerate rrd database'
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
set_verbosity_level(logger, options.get("verbosity", 1))
|
|
||||||
update_portage_trees(logger=logger)
|
|
@ -1,187 +0,0 @@
|
|||||||
"""
|
|
||||||
djeuscan.managers
|
|
||||||
"""
|
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
from djeuscan.helpers import xint, rename_fields, select_related_last_versions
|
|
||||||
|
|
||||||
|
|
||||||
def _gen_n_function(field_name):
|
|
||||||
def n_method(self):
|
|
||||||
res = self.aggregate(models.Sum(field_name))[field_name + '__sum']
|
|
||||||
return xint(res)
|
|
||||||
n_method.func_name = field_name
|
|
||||||
return n_method
|
|
||||||
|
|
||||||
|
|
||||||
def _gen_for_function(field):
|
|
||||||
def for_method(self, val, last_versions=False):
|
|
||||||
"""
|
|
||||||
Returns packages that belong to the given parametrs
|
|
||||||
"""
|
|
||||||
res = self.filter(**{field: val})
|
|
||||||
|
|
||||||
if last_versions:
|
|
||||||
select_related_last_versions(res)
|
|
||||||
|
|
||||||
return res
|
|
||||||
|
|
||||||
for_method.func_name = 'for_' + field
|
|
||||||
return for_method
|
|
||||||
|
|
||||||
|
|
||||||
ANNOTATE_DICT = {name: models.Sum(name)
|
|
||||||
for name in ['n_packaged', 'n_overlay', 'n_versions']}
|
|
||||||
|
|
||||||
|
|
||||||
class PackageMixin(object):
|
|
||||||
for_maintainer = _gen_for_function('maintainers')
|
|
||||||
for_herd = _gen_for_function('herds')
|
|
||||||
for_category = _gen_for_function('category')
|
|
||||||
|
|
||||||
n_packaged = _gen_n_function("n_packaged")
|
|
||||||
n_overlay = _gen_n_function("n_overlay")
|
|
||||||
n_versions = _gen_n_function("n_versions")
|
|
||||||
|
|
||||||
def n_upstream(self):
|
|
||||||
return self.n_versions() - self.n_packaged() - self.n_overlay()
|
|
||||||
|
|
||||||
def categories(self):
|
|
||||||
"""
|
|
||||||
Returns all the available categories
|
|
||||||
"""
|
|
||||||
return self.values('category').annotate(**ANNOTATE_DICT)
|
|
||||||
|
|
||||||
def herds(self, ids=None, rename=False):
|
|
||||||
"""
|
|
||||||
Returns all the available herds
|
|
||||||
"""
|
|
||||||
# FIXME: optimize the query, it uses 'LEFT OUTER JOIN' instead of
|
|
||||||
# 'INNER JOIN'
|
|
||||||
if ids is not None:
|
|
||||||
res = self.filter(herds__id__in=ids)
|
|
||||||
else:
|
|
||||||
res = self.filter(herds__isnull=False)
|
|
||||||
res = res.values('herds__herd').annotate(**ANNOTATE_DICT)
|
|
||||||
|
|
||||||
if rename:
|
|
||||||
res = rename_fields(res, [('herds__herd', 'herd')])
|
|
||||||
|
|
||||||
return res
|
|
||||||
|
|
||||||
def maintainers(self, ids=None, rename=False):
|
|
||||||
"""
|
|
||||||
Returns all the available maintainers
|
|
||||||
"""
|
|
||||||
if ids is not None:
|
|
||||||
res = self.filter(maintainers__id__in=ids)
|
|
||||||
else:
|
|
||||||
res = self.filter(maintainers__isnull=False)
|
|
||||||
|
|
||||||
res = res.values(
|
|
||||||
'maintainers__id', 'maintainers__name', 'maintainers__email'
|
|
||||||
)
|
|
||||||
res = res.annotate(**ANNOTATE_DICT)
|
|
||||||
|
|
||||||
if rename:
|
|
||||||
res = rename_fields(
|
|
||||||
res,
|
|
||||||
[('maintainers__id', 'id'),
|
|
||||||
('maintainers__name', 'name'),
|
|
||||||
('maintainers__email', 'email')]
|
|
||||||
)
|
|
||||||
|
|
||||||
return res
|
|
||||||
|
|
||||||
def overlays(self):
|
|
||||||
"""
|
|
||||||
Returns the all available overlays
|
|
||||||
"""
|
|
||||||
res = self.values('version__overlay').exclude(version__overlay='')
|
|
||||||
return [o["version__overlay"] for o in res.distinct()]
|
|
||||||
|
|
||||||
def for_overlay(self, overlay):
|
|
||||||
"""
|
|
||||||
Returns packages that belong to the given overlay
|
|
||||||
"""
|
|
||||||
packages = self.values(
|
|
||||||
'id', 'name', 'category', 'n_versions', 'n_packaged', 'n_overlay'
|
|
||||||
)
|
|
||||||
return packages.filter(version__overlay=overlay).distinct()
|
|
||||||
|
|
||||||
def for_handler(self, handler):
|
|
||||||
"""
|
|
||||||
Returns packages that belong to the given handler
|
|
||||||
"""
|
|
||||||
packages = self.values(
|
|
||||||
'id', 'name', 'category', 'n_versions', 'n_packaged', 'n_overlay'
|
|
||||||
)
|
|
||||||
return packages.filter(version__handler=handler,
|
|
||||||
version__overlay="").distinct()
|
|
||||||
|
|
||||||
|
|
||||||
class PackageQuerySet(models.query.QuerySet, PackageMixin):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class PackageManager(models.Manager, PackageMixin):
|
|
||||||
def get_query_set(self):
|
|
||||||
return PackageQuerySet(self.model, using=self._db)
|
|
||||||
|
|
||||||
|
|
||||||
class VersionLogMixin(object):
|
|
||||||
def for_package(self, package, order=False):
|
|
||||||
res = self.filter(package=package)
|
|
||||||
if order:
|
|
||||||
res = res.order_by('-id')
|
|
||||||
return res
|
|
||||||
|
|
||||||
def for_maintainer(self, maintainer, order=False):
|
|
||||||
res = self.filter(package__maintainers__id=maintainer.id)
|
|
||||||
if order:
|
|
||||||
res = res.order_by('-id')
|
|
||||||
return res
|
|
||||||
|
|
||||||
def for_category(self, category, order=False):
|
|
||||||
res = self.filter(package__category=category)
|
|
||||||
if order:
|
|
||||||
res = res.order_by('-id')
|
|
||||||
return res
|
|
||||||
|
|
||||||
def for_herd(self, herd, order=False):
|
|
||||||
res = self.filter(package__herds__id=herd.id)
|
|
||||||
if order:
|
|
||||||
res = res.order_by('-id')
|
|
||||||
return res
|
|
||||||
|
|
||||||
|
|
||||||
class VersionLogQuerySet(models.query.QuerySet, VersionLogMixin):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class VersionLogManager(models.Manager, VersionLogMixin):
|
|
||||||
def get_query_set(self):
|
|
||||||
return VersionLogQuerySet(self.model, using=self._db)
|
|
||||||
|
|
||||||
|
|
||||||
class EuscanResultMixin(object):
|
|
||||||
def for_package(self, package):
|
|
||||||
return self.filter(package=package)
|
|
||||||
|
|
||||||
def for_maintainer(self, maintainer):
|
|
||||||
return self.filter(package__maintainers__id=maintainer.id)
|
|
||||||
|
|
||||||
def for_category(self, category):
|
|
||||||
return self.filter(package__category=category)
|
|
||||||
|
|
||||||
def for_herd(self, herd):
|
|
||||||
return self.filter(package__herds__id=herd.id)
|
|
||||||
|
|
||||||
|
|
||||||
class EuscanResultQuerySet(models.query.QuerySet, EuscanResultMixin):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class EuscanResultManager(models.Manager, EuscanResultMixin):
|
|
||||||
def get_query_set(self):
|
|
||||||
return EuscanResultQuerySet(self.model, using=self._db)
|
|
@ -1,283 +0,0 @@
|
|||||||
# encoding: utf-8
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
|
|
||||||
# Adding model 'Herd'
|
|
||||||
db.create_table('djeuscan_herd', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('herd', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)),
|
|
||||||
('email', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['Herd'])
|
|
||||||
|
|
||||||
# Adding model 'Maintainer'
|
|
||||||
db.create_table('djeuscan_maintainer', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('name', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('email', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['Maintainer'])
|
|
||||||
|
|
||||||
# Adding model 'Package'
|
|
||||||
db.create_table('djeuscan_package', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('category', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('name', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
|
|
||||||
('homepage', self.gf('django.db.models.fields.CharField')(max_length=256, blank=True)),
|
|
||||||
('n_versions', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('n_packaged', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('n_overlay', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('last_version_gentoo', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_version_gentoo', null=True, to=orm['djeuscan.Version'])),
|
|
||||||
('last_version_overlay', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_version_overlay', null=True, to=orm['djeuscan.Version'])),
|
|
||||||
('last_version_upstream', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_version_upstream', null=True, to=orm['djeuscan.Version'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['Package'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'Package', fields ['category', 'name']
|
|
||||||
db.create_unique('djeuscan_package', ['category', 'name'])
|
|
||||||
|
|
||||||
# Adding M2M table for field herds on 'Package'
|
|
||||||
db.create_table('djeuscan_package_herds', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('package', models.ForeignKey(orm['djeuscan.package'], null=False)),
|
|
||||||
('herd', models.ForeignKey(orm['djeuscan.herd'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_package_herds', ['package_id', 'herd_id'])
|
|
||||||
|
|
||||||
# Adding M2M table for field maintainers on 'Package'
|
|
||||||
db.create_table('djeuscan_package_maintainers', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('package', models.ForeignKey(orm['djeuscan.package'], null=False)),
|
|
||||||
('maintainer', models.ForeignKey(orm['djeuscan.maintainer'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_package_maintainers', ['package_id', 'maintainer_id'])
|
|
||||||
|
|
||||||
# Adding model 'Version'
|
|
||||||
db.create_table('djeuscan_version', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('package', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Package'])),
|
|
||||||
('slot', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('revision', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('version', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('packaged', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('overlay', self.gf('django.db.models.fields.CharField')(default='gentoo', max_length=128, db_index=True)),
|
|
||||||
('urls', self.gf('django.db.models.fields.TextField')(blank=True)),
|
|
||||||
('alive', self.gf('django.db.models.fields.BooleanField')(default=True, db_index=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['Version'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'Version', fields ['package', 'slot', 'revision', 'version', 'overlay']
|
|
||||||
db.create_unique('djeuscan_version', ['package_id', 'slot', 'revision', 'version', 'overlay'])
|
|
||||||
|
|
||||||
# Adding model 'VersionLog'
|
|
||||||
db.create_table('djeuscan_versionlog', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('package', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Package'])),
|
|
||||||
('datetime', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
|
||||||
('slot', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('revision', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('version', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('packaged', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('overlay', self.gf('django.db.models.fields.CharField')(default='gentoo', max_length=128)),
|
|
||||||
('action', self.gf('django.db.models.fields.IntegerField')()),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['VersionLog'])
|
|
||||||
|
|
||||||
# Adding model 'EuscanResult'
|
|
||||||
db.create_table('djeuscan_euscanresult', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('package', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Package'])),
|
|
||||||
('datetime', self.gf('django.db.models.fields.DateTimeField')()),
|
|
||||||
('result', self.gf('django.db.models.fields.TextField')(blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['EuscanResult'])
|
|
||||||
|
|
||||||
# Adding model 'Log'
|
|
||||||
db.create_table('djeuscan_log', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('datetime', self.gf('django.db.models.fields.DateTimeField')()),
|
|
||||||
('n_packages_gentoo', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('n_packages_overlay', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('n_packages_outdated', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('n_versions_gentoo', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('n_versions_overlay', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('n_versions_upstream', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['Log'])
|
|
||||||
|
|
||||||
# Adding model 'WorldLog'
|
|
||||||
db.create_table('djeuscan_worldlog', (
|
|
||||||
('log_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['djeuscan.Log'], unique=True, primary_key=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['WorldLog'])
|
|
||||||
|
|
||||||
# Adding model 'CategoryLog'
|
|
||||||
db.create_table('djeuscan_categorylog', (
|
|
||||||
('log_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['djeuscan.Log'], unique=True, primary_key=True)),
|
|
||||||
('category', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['CategoryLog'])
|
|
||||||
|
|
||||||
# Adding model 'HerdLog'
|
|
||||||
db.create_table('djeuscan_herdlog', (
|
|
||||||
('log_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['djeuscan.Log'], unique=True, primary_key=True)),
|
|
||||||
('herd', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Herd'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['HerdLog'])
|
|
||||||
|
|
||||||
# Adding model 'MaintainerLog'
|
|
||||||
db.create_table('djeuscan_maintainerlog', (
|
|
||||||
('log_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['djeuscan.Log'], unique=True, primary_key=True)),
|
|
||||||
('maintainer', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Maintainer'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['MaintainerLog'])
|
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
|
|
||||||
# Removing unique constraint on 'Version', fields ['package', 'slot', 'revision', 'version', 'overlay']
|
|
||||||
db.delete_unique('djeuscan_version', ['package_id', 'slot', 'revision', 'version', 'overlay'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'Package', fields ['category', 'name']
|
|
||||||
db.delete_unique('djeuscan_package', ['category', 'name'])
|
|
||||||
|
|
||||||
# Deleting model 'Herd'
|
|
||||||
db.delete_table('djeuscan_herd')
|
|
||||||
|
|
||||||
# Deleting model 'Maintainer'
|
|
||||||
db.delete_table('djeuscan_maintainer')
|
|
||||||
|
|
||||||
# Deleting model 'Package'
|
|
||||||
db.delete_table('djeuscan_package')
|
|
||||||
|
|
||||||
# Removing M2M table for field herds on 'Package'
|
|
||||||
db.delete_table('djeuscan_package_herds')
|
|
||||||
|
|
||||||
# Removing M2M table for field maintainers on 'Package'
|
|
||||||
db.delete_table('djeuscan_package_maintainers')
|
|
||||||
|
|
||||||
# Deleting model 'Version'
|
|
||||||
db.delete_table('djeuscan_version')
|
|
||||||
|
|
||||||
# Deleting model 'VersionLog'
|
|
||||||
db.delete_table('djeuscan_versionlog')
|
|
||||||
|
|
||||||
# Deleting model 'EuscanResult'
|
|
||||||
db.delete_table('djeuscan_euscanresult')
|
|
||||||
|
|
||||||
# Deleting model 'Log'
|
|
||||||
db.delete_table('djeuscan_log')
|
|
||||||
|
|
||||||
# Deleting model 'WorldLog'
|
|
||||||
db.delete_table('djeuscan_worldlog')
|
|
||||||
|
|
||||||
# Deleting model 'CategoryLog'
|
|
||||||
db.delete_table('djeuscan_categorylog')
|
|
||||||
|
|
||||||
# Deleting model 'HerdLog'
|
|
||||||
db.delete_table('djeuscan_herdlog')
|
|
||||||
|
|
||||||
# Deleting model 'MaintainerLog'
|
|
||||||
db.delete_table('djeuscan_maintainerlog')
|
|
||||||
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,113 +0,0 @@
|
|||||||
# encoding: utf-8
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
|
|
||||||
# Changing field 'Package.homepage'
|
|
||||||
db.alter_column('djeuscan_package', 'homepage', self.gf('django.db.models.fields.TextField')())
|
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
|
|
||||||
# Changing field 'Package.homepage'
|
|
||||||
db.alter_column('djeuscan_package', 'homepage', self.gf('django.db.models.fields.CharField')(max_length=256))
|
|
||||||
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,139 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding model 'RefreshPackageQuery'
|
|
||||||
db.create_table('djeuscan_refreshpackagequery', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('query', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
|
|
||||||
('priority', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['RefreshPackageQuery'])
|
|
||||||
|
|
||||||
|
|
||||||
# Changing field 'Package.last_version_gentoo'
|
|
||||||
db.alter_column('djeuscan_package', 'last_version_gentoo_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['djeuscan.Version']))
|
|
||||||
|
|
||||||
# Changing field 'Package.last_version_overlay'
|
|
||||||
db.alter_column('djeuscan_package', 'last_version_overlay_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['djeuscan.Version']))
|
|
||||||
|
|
||||||
# Changing field 'Package.last_version_upstream'
|
|
||||||
db.alter_column('djeuscan_package', 'last_version_upstream_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['djeuscan.Version']))
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting model 'RefreshPackageQuery'
|
|
||||||
db.delete_table('djeuscan_refreshpackagequery')
|
|
||||||
|
|
||||||
|
|
||||||
# Changing field 'Package.last_version_gentoo'
|
|
||||||
db.alter_column('djeuscan_package', 'last_version_gentoo_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['djeuscan.Version']))
|
|
||||||
|
|
||||||
# Changing field 'Package.last_version_overlay'
|
|
||||||
db.alter_column('djeuscan_package', 'last_version_overlay_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['djeuscan.Version']))
|
|
||||||
|
|
||||||
# Changing field 'Package.last_version_upstream'
|
|
||||||
db.alter_column('djeuscan_package', 'last_version_upstream_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['djeuscan.Version']))
|
|
||||||
models = {
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'query': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,238 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding model 'CategoryAssociation'
|
|
||||||
db.create_table('djeuscan_categoryassociation', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('category', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['CategoryAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'CategoryAssociation', fields ['user', 'category']
|
|
||||||
db.create_unique('djeuscan_categoryassociation', ['user_id', 'category'])
|
|
||||||
|
|
||||||
# Adding model 'PackageAssociation'
|
|
||||||
db.create_table('djeuscan_packageassociation', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('package', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Package'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['PackageAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'PackageAssociation', fields ['user', 'package']
|
|
||||||
db.create_unique('djeuscan_packageassociation', ['user_id', 'package_id'])
|
|
||||||
|
|
||||||
# Adding model 'HerdAssociation'
|
|
||||||
db.create_table('djeuscan_herdassociation', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('herd', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Herd'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['HerdAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'HerdAssociation', fields ['user', 'herd']
|
|
||||||
db.create_unique('djeuscan_herdassociation', ['user_id', 'herd_id'])
|
|
||||||
|
|
||||||
# Adding model 'MaintainerAssociation'
|
|
||||||
db.create_table('djeuscan_maintainerassociation', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('maintainer', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Maintainer'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['MaintainerAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'MaintainerAssociation', fields ['user', 'maintainer']
|
|
||||||
db.create_unique('djeuscan_maintainerassociation', ['user_id', 'maintainer_id'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing unique constraint on 'MaintainerAssociation', fields ['user', 'maintainer']
|
|
||||||
db.delete_unique('djeuscan_maintainerassociation', ['user_id', 'maintainer_id'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'HerdAssociation', fields ['user', 'herd']
|
|
||||||
db.delete_unique('djeuscan_herdassociation', ['user_id', 'herd_id'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'PackageAssociation', fields ['user', 'package']
|
|
||||||
db.delete_unique('djeuscan_packageassociation', ['user_id', 'package_id'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'CategoryAssociation', fields ['user', 'category']
|
|
||||||
db.delete_unique('djeuscan_categoryassociation', ['user_id', 'category'])
|
|
||||||
|
|
||||||
# Deleting model 'CategoryAssociation'
|
|
||||||
db.delete_table('djeuscan_categoryassociation')
|
|
||||||
|
|
||||||
# Deleting model 'PackageAssociation'
|
|
||||||
db.delete_table('djeuscan_packageassociation')
|
|
||||||
|
|
||||||
# Deleting model 'HerdAssociation'
|
|
||||||
db.delete_table('djeuscan_herdassociation')
|
|
||||||
|
|
||||||
# Deleting model 'MaintainerAssociation'
|
|
||||||
db.delete_table('djeuscan_maintainerassociation')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'query': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,197 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'Version.version_type'
|
|
||||||
db.add_column('djeuscan_version', 'version_type',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=128, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'Version.handler'
|
|
||||||
db.add_column('djeuscan_version', 'handler',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=128, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'Version.confidence'
|
|
||||||
db.add_column('djeuscan_version', 'confidence',
|
|
||||||
self.gf('django.db.models.fields.IntegerField')(default=0),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'Version.version_type'
|
|
||||||
db.delete_column('djeuscan_version', 'version_type')
|
|
||||||
|
|
||||||
# Deleting field 'Version.handler'
|
|
||||||
db.delete_column('djeuscan_version', 'handler')
|
|
||||||
|
|
||||||
# Deleting field 'Version.confidence'
|
|
||||||
db.delete_column('djeuscan_version', 'confidence')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'query': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,191 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'EuscanResult.scan_time'
|
|
||||||
db.add_column('djeuscan_euscanresult', 'scan_time',
|
|
||||||
self.gf('django.db.models.fields.FloatField')(null=True, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'EuscanResult.ebuild'
|
|
||||||
db.add_column('djeuscan_euscanresult', 'ebuild',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'EuscanResult.scan_time'
|
|
||||||
db.delete_column('djeuscan_euscanresult', 'scan_time')
|
|
||||||
|
|
||||||
# Deleting field 'EuscanResult.ebuild'
|
|
||||||
db.delete_column('djeuscan_euscanresult', 'ebuild')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'query': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,191 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Deleting field 'RefreshPackageQuery.query'
|
|
||||||
db.delete_column('djeuscan_refreshpackagequery', 'query')
|
|
||||||
|
|
||||||
# Adding field 'RefreshPackageQuery.package'
|
|
||||||
db.add_column('djeuscan_refreshpackagequery', 'package',
|
|
||||||
self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Package']),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Adding field 'RefreshPackageQuery.query'
|
|
||||||
db.add_column('djeuscan_refreshpackagequery', 'query',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default=None, max_length=256, unique=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Deleting field 'RefreshPackageQuery.package'
|
|
||||||
db.delete_column('djeuscan_refreshpackagequery', 'package_id')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,198 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding model 'ProblemReport'
|
|
||||||
db.create_table('djeuscan_problemreport', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('package', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Package'])),
|
|
||||||
('version', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Version'], null=True, blank=True)),
|
|
||||||
('subject', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('message', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
('datetime', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['ProblemReport'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting model 'ProblemReport'
|
|
||||||
db.delete_table('djeuscan_problemreport')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,207 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding model 'OverlayAssociation'
|
|
||||||
db.create_table('djeuscan_overlayassociation', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('overlay', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['OverlayAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'OverlayAssociation', fields ['user', 'overlay']
|
|
||||||
db.create_unique('djeuscan_overlayassociation', ['user_id', 'overlay'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing unique constraint on 'OverlayAssociation', fields ['user', 'overlay']
|
|
||||||
db.delete_unique('djeuscan_overlayassociation', ['user_id', 'overlay'])
|
|
||||||
|
|
||||||
# Deleting model 'OverlayAssociation'
|
|
||||||
db.delete_table('djeuscan_overlayassociation')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlayassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'overlay'],)", 'object_name': 'OverlayAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,208 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'Version.ebuild_path'
|
|
||||||
db.add_column('djeuscan_version', 'ebuild_path',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'Version.metadata_path'
|
|
||||||
db.add_column('djeuscan_version', 'metadata_path',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'Version.ebuild_path'
|
|
||||||
db.delete_column('djeuscan_version', 'ebuild_path')
|
|
||||||
|
|
||||||
# Deleting field 'Version.metadata_path'
|
|
||||||
db.delete_column('djeuscan_version', 'metadata_path')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlayassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'overlay'],)", 'object_name': 'OverlayAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,208 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Deleting field 'Version.version_type'
|
|
||||||
db.delete_column('djeuscan_version', 'version_type')
|
|
||||||
|
|
||||||
# Adding field 'Version.vtype'
|
|
||||||
db.add_column('djeuscan_version', 'vtype',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=128, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Adding field 'Version.version_type'
|
|
||||||
db.add_column('djeuscan_version', 'version_type',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=128, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Deleting field 'Version.vtype'
|
|
||||||
db.delete_column('djeuscan_version', 'vtype')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlayassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'overlay'],)", 'object_name': 'OverlayAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,201 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'VersionLog.vtype'
|
|
||||||
db.add_column('djeuscan_versionlog', 'vtype',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=128, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'VersionLog.vtype'
|
|
||||||
db.delete_column('djeuscan_versionlog', 'vtype')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlayassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'overlay'],)", 'object_name': 'OverlayAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,205 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding M2M table for field maintainers on 'Herd'
|
|
||||||
db.create_table('djeuscan_herd_maintainers', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('herd', models.ForeignKey(orm['djeuscan.herd'], null=False)),
|
|
||||||
('maintainer', models.ForeignKey(orm['djeuscan.maintainer'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_herd_maintainers', ['herd_id', 'maintainer_id'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing M2M table for field maintainers on 'Herd'
|
|
||||||
db.delete_table('djeuscan_herd_maintainers')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlayassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'overlay'],)", 'object_name': 'OverlayAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,206 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding M2M table for field users on 'RefreshPackageQuery'
|
|
||||||
db.create_table('djeuscan_refreshpackagequery_users', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('refreshpackagequery', models.ForeignKey(orm['djeuscan.refreshpackagequery'], null=False)),
|
|
||||||
('user', models.ForeignKey(orm['auth.user'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_refreshpackagequery_users', ['refreshpackagequery_id', 'user_id'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing M2M table for field users on 'RefreshPackageQuery'
|
|
||||||
db.delete_table('djeuscan_refreshpackagequery_users')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlayassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'overlay'],)", 'object_name': 'OverlayAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,324 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
from south.v2 import DataMigration
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(DataMigration):
|
|
||||||
|
|
||||||
depends_on = (
|
|
||||||
("djcelery", "0001_initial"),
|
|
||||||
)
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
every_day = orm["djcelery.CrontabSchedule"].objects.create(
|
|
||||||
minute="00",
|
|
||||||
hour="01",
|
|
||||||
day_of_week="*",
|
|
||||||
day_of_month="*",
|
|
||||||
month_of_year="*"
|
|
||||||
)
|
|
||||||
every_week = orm["djcelery.CrontabSchedule"].objects.create(
|
|
||||||
minute="00",
|
|
||||||
hour="03",
|
|
||||||
day_of_week="1",
|
|
||||||
day_of_month="*",
|
|
||||||
month_of_year="*"
|
|
||||||
)
|
|
||||||
every_month = orm["djcelery.CrontabSchedule"].objects.create(
|
|
||||||
minute="00",
|
|
||||||
hour="05",
|
|
||||||
day_of_month="1",
|
|
||||||
month_of_year="*"
|
|
||||||
)
|
|
||||||
orm["djcelery.PeriodicTask"].objects.create(
|
|
||||||
name="Daily portage update",
|
|
||||||
task="djeuscan.tasks.update_portage",
|
|
||||||
crontab=every_day
|
|
||||||
)
|
|
||||||
orm["djcelery.PeriodicTask"].objects.create(
|
|
||||||
name="Weekly upstream update",
|
|
||||||
task="djeuscan.tasks.update_upstream",
|
|
||||||
crontab=every_week
|
|
||||||
)
|
|
||||||
orm["djcelery.PeriodicTask"].objects.create(
|
|
||||||
name="Weekly emails",
|
|
||||||
task="djeuscan.tasks.send_weekly_email",
|
|
||||||
crontab=every_week
|
|
||||||
)
|
|
||||||
orm["djcelery.PeriodicTask"].objects.create(
|
|
||||||
name="Monthly emails",
|
|
||||||
task="djeuscan.tasks.send_monthly_email",
|
|
||||||
crontab=every_month
|
|
||||||
)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
orm["djcelery.CrontabSchedule"].objects.all().delete()
|
|
||||||
orm["djcelery.PeriodicTask"].objects.all().delete()
|
|
||||||
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djcelery.crontabschedule': {
|
|
||||||
'Meta': {'object_name': 'CrontabSchedule'},
|
|
||||||
'day_of_month': ('django.db.models.fields.CharField', [], {'default': "'*'", 'max_length': '64'}),
|
|
||||||
'day_of_week': ('django.db.models.fields.CharField', [], {'default': "'*'", 'max_length': '64'}),
|
|
||||||
'hour': ('django.db.models.fields.CharField', [], {'default': "'*'", 'max_length': '64'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'minute': ('django.db.models.fields.CharField', [], {'default': "'*'", 'max_length': '64'}),
|
|
||||||
'month_of_year': ('django.db.models.fields.CharField', [], {'default': "'*'", 'max_length': '64'})
|
|
||||||
},
|
|
||||||
'djcelery.intervalschedule': {
|
|
||||||
'Meta': {'object_name': 'IntervalSchedule'},
|
|
||||||
'every': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'period': ('django.db.models.fields.CharField', [], {'max_length': '24'})
|
|
||||||
},
|
|
||||||
'djcelery.periodictask': {
|
|
||||||
'Meta': {'object_name': 'PeriodicTask'},
|
|
||||||
'args': ('django.db.models.fields.TextField', [], {'default': "'[]'", 'blank': 'True'}),
|
|
||||||
'crontab': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djcelery.CrontabSchedule']", 'null': 'True', 'blank': 'True'}),
|
|
||||||
'date_changed': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'exchange': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'interval': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djcelery.IntervalSchedule']", 'null': 'True', 'blank': 'True'}),
|
|
||||||
'kwargs': ('django.db.models.fields.TextField', [], {'default': "'{}'", 'blank': 'True'}),
|
|
||||||
'last_run_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200'}),
|
|
||||||
'queue': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'routing_key': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'task': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
|
||||||
'total_run_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djcelery.periodictasks': {
|
|
||||||
'Meta': {'object_name': 'PeriodicTasks'},
|
|
||||||
'ident': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'last_update': ('django.db.models.fields.DateTimeField', [], {})
|
|
||||||
},
|
|
||||||
'djcelery.taskmeta': {
|
|
||||||
'Meta': {'object_name': 'TaskMeta', 'db_table': "'celery_taskmeta'"},
|
|
||||||
'date_done': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
|
||||||
'hidden': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'meta': ('djcelery.picklefield.PickledObjectField', [], {'default': 'None', 'null': 'True'}),
|
|
||||||
'result': ('djcelery.picklefield.PickledObjectField', [], {'default': 'None', 'null': 'True'}),
|
|
||||||
'status': ('django.db.models.fields.CharField', [], {'default': "'PENDING'", 'max_length': '50'}),
|
|
||||||
'task_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
|
||||||
'traceback': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djcelery.tasksetmeta': {
|
|
||||||
'Meta': {'object_name': 'TaskSetMeta', 'db_table': "'celery_tasksetmeta'"},
|
|
||||||
'date_done': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
|
||||||
'hidden': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'result': ('djcelery.picklefield.PickledObjectField', [], {}),
|
|
||||||
'taskset_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
|
|
||||||
},
|
|
||||||
'djcelery.taskstate': {
|
|
||||||
'Meta': {'ordering': "['-tstamp']", 'object_name': 'TaskState'},
|
|
||||||
'args': ('django.db.models.fields.TextField', [], {'null': 'True'}),
|
|
||||||
'eta': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
|
||||||
'expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
|
||||||
'hidden': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'kwargs': ('django.db.models.fields.TextField', [], {'null': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'db_index': 'True'}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'null': 'True'}),
|
|
||||||
'retries': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'runtime': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
|
|
||||||
'state': ('django.db.models.fields.CharField', [], {'max_length': '64', 'db_index': 'True'}),
|
|
||||||
'task_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'}),
|
|
||||||
'traceback': ('django.db.models.fields.TextField', [], {'null': 'True'}),
|
|
||||||
'tstamp': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
|
|
||||||
'worker': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djcelery.WorkerState']", 'null': 'True'})
|
|
||||||
},
|
|
||||||
'djcelery.workerstate': {
|
|
||||||
'Meta': {'ordering': "['-last_heartbeat']", 'object_name': 'WorkerState'},
|
|
||||||
'hostname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_heartbeat': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.categoryassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'category'],)", 'object_name': 'CategoryAssociation'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'herd'],)", 'object_name': 'HerdAssociation'},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'maintainer'],)", 'object_name': 'MaintainerAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlayassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'overlay'],)", 'object_name': 'OverlayAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.packageassociation': {
|
|
||||||
'Meta': {'unique_together': "(['user', 'package'],)", 'object_name': 'PackageAssociation'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djcelery', 'djeuscan']
|
|
||||||
symmetrical = True
|
|
@ -1,355 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Removing unique constraint on 'CategoryAssociation', fields ['user', 'category']
|
|
||||||
db.delete_unique('djeuscan_categoryassociation', ['user_id', 'category'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'OverlayAssociation', fields ['user', 'overlay']
|
|
||||||
db.delete_unique('djeuscan_overlayassociation', ['user_id', 'overlay'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'HerdAssociation', fields ['user', 'herd']
|
|
||||||
db.delete_unique('djeuscan_herdassociation', ['user_id', 'herd_id'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'PackageAssociation', fields ['user', 'package']
|
|
||||||
db.delete_unique('djeuscan_packageassociation', ['user_id', 'package_id'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'MaintainerAssociation', fields ['user', 'maintainer']
|
|
||||||
db.delete_unique('djeuscan_maintainerassociation', ['user_id', 'maintainer_id'])
|
|
||||||
|
|
||||||
# Deleting model 'MaintainerAssociation'
|
|
||||||
db.delete_table('djeuscan_maintainerassociation')
|
|
||||||
|
|
||||||
# Deleting model 'PackageAssociation'
|
|
||||||
db.delete_table('djeuscan_packageassociation')
|
|
||||||
|
|
||||||
# Deleting model 'HerdAssociation'
|
|
||||||
db.delete_table('djeuscan_herdassociation')
|
|
||||||
|
|
||||||
# Deleting model 'OverlayAssociation'
|
|
||||||
db.delete_table('djeuscan_overlayassociation')
|
|
||||||
|
|
||||||
# Deleting model 'CategoryAssociation'
|
|
||||||
db.delete_table('djeuscan_categoryassociation')
|
|
||||||
|
|
||||||
# Adding model 'UserProfile'
|
|
||||||
db.create_table('djeuscan_userprofile', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['UserProfile'])
|
|
||||||
|
|
||||||
# Adding M2M table for field herds on 'UserProfile'
|
|
||||||
db.create_table('djeuscan_userprofile_herds', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('userprofile', models.ForeignKey(orm['djeuscan.userprofile'], null=False)),
|
|
||||||
('herd', models.ForeignKey(orm['djeuscan.herd'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_userprofile_herds', ['userprofile_id', 'herd_id'])
|
|
||||||
|
|
||||||
# Adding M2M table for field maintainers on 'UserProfile'
|
|
||||||
db.create_table('djeuscan_userprofile_maintainers', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('userprofile', models.ForeignKey(orm['djeuscan.userprofile'], null=False)),
|
|
||||||
('maintainer', models.ForeignKey(orm['djeuscan.maintainer'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_userprofile_maintainers', ['userprofile_id', 'maintainer_id'])
|
|
||||||
|
|
||||||
# Adding M2M table for field packages on 'UserProfile'
|
|
||||||
db.create_table('djeuscan_userprofile_packages', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('userprofile', models.ForeignKey(orm['djeuscan.userprofile'], null=False)),
|
|
||||||
('package', models.ForeignKey(orm['djeuscan.package'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_userprofile_packages', ['userprofile_id', 'package_id'])
|
|
||||||
|
|
||||||
# Adding M2M table for field categories on 'UserProfile'
|
|
||||||
db.create_table('djeuscan_userprofile_categories', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('userprofile', models.ForeignKey(orm['djeuscan.userprofile'], null=False)),
|
|
||||||
('category', models.ForeignKey(orm['djeuscan.category'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_userprofile_categories', ['userprofile_id', 'category_id'])
|
|
||||||
|
|
||||||
# Adding M2M table for field overlays on 'UserProfile'
|
|
||||||
db.create_table('djeuscan_userprofile_overlays', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('userprofile', models.ForeignKey(orm['djeuscan.userprofile'], null=False)),
|
|
||||||
('overlay', models.ForeignKey(orm['djeuscan.overlay'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('djeuscan_userprofile_overlays', ['userprofile_id', 'overlay_id'])
|
|
||||||
|
|
||||||
# Adding model 'Category'
|
|
||||||
db.create_table('djeuscan_category', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('name', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['Category'])
|
|
||||||
|
|
||||||
# Adding model 'Overlay'
|
|
||||||
db.create_table('djeuscan_overlay', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('name', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['Overlay'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Adding model 'MaintainerAssociation'
|
|
||||||
db.create_table('djeuscan_maintainerassociation', (
|
|
||||||
('maintainer', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Maintainer'])),
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['MaintainerAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'MaintainerAssociation', fields ['user', 'maintainer']
|
|
||||||
db.create_unique('djeuscan_maintainerassociation', ['user_id', 'maintainer_id'])
|
|
||||||
|
|
||||||
# Adding model 'PackageAssociation'
|
|
||||||
db.create_table('djeuscan_packageassociation', (
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('package', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Package'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['PackageAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'PackageAssociation', fields ['user', 'package']
|
|
||||||
db.create_unique('djeuscan_packageassociation', ['user_id', 'package_id'])
|
|
||||||
|
|
||||||
# Adding model 'HerdAssociation'
|
|
||||||
db.create_table('djeuscan_herdassociation', (
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('herd', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['djeuscan.Herd'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['HerdAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'HerdAssociation', fields ['user', 'herd']
|
|
||||||
db.create_unique('djeuscan_herdassociation', ['user_id', 'herd_id'])
|
|
||||||
|
|
||||||
# Adding model 'OverlayAssociation'
|
|
||||||
db.create_table('djeuscan_overlayassociation', (
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('overlay', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['OverlayAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'OverlayAssociation', fields ['user', 'overlay']
|
|
||||||
db.create_unique('djeuscan_overlayassociation', ['user_id', 'overlay'])
|
|
||||||
|
|
||||||
# Adding model 'CategoryAssociation'
|
|
||||||
db.create_table('djeuscan_categoryassociation', (
|
|
||||||
('category', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
))
|
|
||||||
db.send_create_signal('djeuscan', ['CategoryAssociation'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'CategoryAssociation', fields ['user', 'category']
|
|
||||||
db.create_unique('djeuscan_categoryassociation', ['user_id', 'category'])
|
|
||||||
|
|
||||||
# Deleting model 'UserProfile'
|
|
||||||
db.delete_table('djeuscan_userprofile')
|
|
||||||
|
|
||||||
# Removing M2M table for field herds on 'UserProfile'
|
|
||||||
db.delete_table('djeuscan_userprofile_herds')
|
|
||||||
|
|
||||||
# Removing M2M table for field maintainers on 'UserProfile'
|
|
||||||
db.delete_table('djeuscan_userprofile_maintainers')
|
|
||||||
|
|
||||||
# Removing M2M table for field packages on 'UserProfile'
|
|
||||||
db.delete_table('djeuscan_userprofile_packages')
|
|
||||||
|
|
||||||
# Removing M2M table for field categories on 'UserProfile'
|
|
||||||
db.delete_table('djeuscan_userprofile_categories')
|
|
||||||
|
|
||||||
# Removing M2M table for field overlays on 'UserProfile'
|
|
||||||
db.delete_table('djeuscan_userprofile_overlays')
|
|
||||||
|
|
||||||
# Deleting model 'Category'
|
|
||||||
db.delete_table('djeuscan_category')
|
|
||||||
|
|
||||||
# Deleting model 'Overlay'
|
|
||||||
db.delete_table('djeuscan_overlay')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.userprofile': {
|
|
||||||
'Meta': {'object_name': 'UserProfile'},
|
|
||||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Category']", 'symmetrical': 'False'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'}),
|
|
||||||
'overlays': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Overlay']", 'symmetrical': 'False'}),
|
|
||||||
'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Package']", 'symmetrical': 'False'}),
|
|
||||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,197 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding unique constraint on 'Overlay', fields ['name']
|
|
||||||
db.create_unique('djeuscan_overlay', ['name'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'Category', fields ['name']
|
|
||||||
db.create_unique('djeuscan_category', ['name'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing unique constraint on 'Category', fields ['name']
|
|
||||||
db.delete_unique('djeuscan_category', ['name'])
|
|
||||||
|
|
||||||
# Removing unique constraint on 'Overlay', fields ['name']
|
|
||||||
db.delete_unique('djeuscan_overlay', ['name'])
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.userprofile': {
|
|
||||||
'Meta': {'object_name': 'UserProfile'},
|
|
||||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Category']", 'symmetrical': 'False'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'}),
|
|
||||||
'overlays': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Overlay']", 'symmetrical': 'False'}),
|
|
||||||
'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Package']", 'symmetrical': 'False'}),
|
|
||||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,203 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'UserProfile.upstream_info'
|
|
||||||
db.add_column('djeuscan_userprofile', 'upstream_info',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.portage_info'
|
|
||||||
db.add_column('djeuscan_userprofile', 'portage_info',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'UserProfile.upstream_info'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'upstream_info')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.portage_info'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'portage_info')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.userprofile': {
|
|
||||||
'Meta': {'object_name': 'UserProfile'},
|
|
||||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Category']", 'symmetrical': 'False'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'}),
|
|
||||||
'overlays': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Overlay']", 'symmetrical': 'False'}),
|
|
||||||
'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Package']", 'symmetrical': 'False'}),
|
|
||||||
'portage_info': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'upstream_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,282 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Deleting field 'UserProfile.portage_info'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'portage_info')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.upstream_info'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'upstream_info')
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.feed_upstream_info'
|
|
||||||
db.add_column('djeuscan_userprofile', 'feed_upstream_info',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.feed_portage_info'
|
|
||||||
db.add_column('djeuscan_userprofile', 'feed_portage_info',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.feed_show_adds'
|
|
||||||
db.add_column('djeuscan_userprofile', 'feed_show_adds',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.feed_show_removals'
|
|
||||||
db.add_column('djeuscan_userprofile', 'feed_show_removals',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.feed_ignore_pre'
|
|
||||||
db.add_column('djeuscan_userprofile', 'feed_ignore_pre',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.feed_ignore_pre_if_stable'
|
|
||||||
db.add_column('djeuscan_userprofile', 'feed_ignore_pre_if_stable',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.email_activated'
|
|
||||||
db.add_column('djeuscan_userprofile', 'email_activated',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.email_ignore_pre'
|
|
||||||
db.add_column('djeuscan_userprofile', 'email_ignore_pre',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.email_ignore_pre_if_stable'
|
|
||||||
db.add_column('djeuscan_userprofile', 'email_ignore_pre_if_stable',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Adding field 'UserProfile.portage_info'
|
|
||||||
db.add_column('djeuscan_userprofile', 'portage_info',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'UserProfile.upstream_info'
|
|
||||||
db.add_column('djeuscan_userprofile', 'upstream_info',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.feed_upstream_info'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'feed_upstream_info')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.feed_portage_info'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'feed_portage_info')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.feed_show_adds'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'feed_show_adds')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.feed_show_removals'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'feed_show_removals')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.feed_ignore_pre'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'feed_ignore_pre')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.feed_ignore_pre_if_stable'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'feed_ignore_pre_if_stable')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.email_activated'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'email_activated')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.email_ignore_pre'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'email_ignore_pre')
|
|
||||||
|
|
||||||
# Deleting field 'UserProfile.email_ignore_pre_if_stable'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'email_ignore_pre_if_stable')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.userprofile': {
|
|
||||||
'Meta': {'object_name': 'UserProfile'},
|
|
||||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Category']", 'symmetrical': 'False'}),
|
|
||||||
'email_activated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'email_ignore_pre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'email_ignore_pre_if_stable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_ignore_pre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_ignore_pre_if_stable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_portage_info': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_show_adds': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'feed_show_removals': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'feed_upstream_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'}),
|
|
||||||
'overlays': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Overlay']", 'symmetrical': 'False'}),
|
|
||||||
'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Package']", 'symmetrical': 'False'}),
|
|
||||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,203 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'UserProfile.email_every'
|
|
||||||
db.add_column('djeuscan_userprofile', 'email_every',
|
|
||||||
self.gf('django.db.models.fields.IntegerField')(default=1),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'UserProfile.email_every'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'email_every')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.userprofile': {
|
|
||||||
'Meta': {'object_name': 'UserProfile'},
|
|
||||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Category']", 'symmetrical': 'False'}),
|
|
||||||
'email_activated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'email_every': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
|
|
||||||
'email_ignore_pre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'email_ignore_pre_if_stable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_ignore_pre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_ignore_pre_if_stable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_portage_info': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_show_adds': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'feed_show_removals': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'feed_upstream_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'}),
|
|
||||||
'overlays': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Overlay']", 'symmetrical': 'False'}),
|
|
||||||
'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Package']", 'symmetrical': 'False'}),
|
|
||||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,204 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'UserProfile.last_email'
|
|
||||||
db.add_column('djeuscan_userprofile', 'last_email',
|
|
||||||
self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, default=datetime.datetime(2012, 8, 11, 0, 0), blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'UserProfile.last_email'
|
|
||||||
db.delete_column('djeuscan_userprofile', 'last_email')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.userprofile': {
|
|
||||||
'Meta': {'object_name': 'UserProfile'},
|
|
||||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Category']", 'symmetrical': 'False'}),
|
|
||||||
'email_activated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'email_every': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
|
|
||||||
'email_ignore_pre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'email_ignore_pre_if_stable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_ignore_pre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_ignore_pre_if_stable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_portage_info': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'feed_show_adds': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'feed_show_removals': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'feed_upstream_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_email': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'}),
|
|
||||||
'overlays': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Overlay']", 'symmetrical': 'False'}),
|
|
||||||
'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Package']", 'symmetrical': 'False'}),
|
|
||||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,179 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
depends_on = (
|
|
||||||
('euscan_accounts', '0001_initial'),
|
|
||||||
)
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
pass
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'slot', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,187 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Removing unique constraint on 'Version', fields ['slot', 'overlay', 'revision', 'version', 'package']
|
|
||||||
db.delete_unique('djeuscan_version', ['slot', 'overlay', 'revision', 'version', 'package_id'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'Version', fields ['overlay', 'revision', 'version', 'package']
|
|
||||||
db.create_unique('djeuscan_version', ['overlay', 'revision', 'version', 'package_id'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing unique constraint on 'Version', fields ['overlay', 'revision', 'version', 'package']
|
|
||||||
db.delete_unique('djeuscan_version', ['overlay', 'revision', 'version', 'package_id'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'Version', fields ['slot', 'overlay', 'revision', 'version', 'package']
|
|
||||||
db.create_unique('djeuscan_version', ['slot', 'overlay', 'revision', 'version', 'package_id'])
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,183 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding index on 'Version', fields ['handler']
|
|
||||||
db.create_index('djeuscan_version', ['handler'])
|
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing index on 'Version', fields ['handler']
|
|
||||||
db.delete_index('djeuscan_version', ['handler'])
|
|
||||||
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,181 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding index on 'Version', fields ['handler']
|
|
||||||
db.create_index('djeuscan_version', ['handler'])
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing index on 'Version', fields ['handler']
|
|
||||||
db.delete_index('djeuscan_version', ['handler'])
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'alive': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,184 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Deleting field 'Version.alive'
|
|
||||||
db.delete_column('djeuscan_version', 'alive')
|
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Adding field 'Version.alive'
|
|
||||||
db.add_column('djeuscan_version', 'alive',
|
|
||||||
self.gf('django.db.models.fields.BooleanField')(default=True, db_index=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,201 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'Category.description'
|
|
||||||
db.add_column('djeuscan_category', 'description',
|
|
||||||
self.gf('django.db.models.fields.TextField')(default='', blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'Overlay.description'
|
|
||||||
db.add_column('djeuscan_overlay', 'description',
|
|
||||||
self.gf('django.db.models.fields.TextField')(default='', blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
# Adding field 'Overlay.homepage'
|
|
||||||
db.add_column('djeuscan_overlay', 'homepage',
|
|
||||||
self.gf('django.db.models.fields.TextField')(default='', blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'Category.description'
|
|
||||||
db.delete_column('djeuscan_category', 'description')
|
|
||||||
|
|
||||||
# Deleting field 'Overlay.description'
|
|
||||||
db.delete_column('djeuscan_overlay', 'description')
|
|
||||||
|
|
||||||
# Deleting field 'Overlay.homepage'
|
|
||||||
db.delete_column('djeuscan_overlay', 'homepage')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,186 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'Overlay.overlay_path'
|
|
||||||
db.add_column('djeuscan_overlay', 'overlay_path',
|
|
||||||
self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'Overlay.overlay_path'
|
|
||||||
db.delete_column('djeuscan_overlay', 'overlay_path')
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'overlay_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,189 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding field 'Version.stabilization_candidate'
|
|
||||||
db.add_column('djeuscan_version', 'stabilization_candidate',
|
|
||||||
self.gf('django.db.models.fields.DateField')(default=None, null=True, blank=True),
|
|
||||||
keep_default=False)
|
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Deleting field 'Version.stabilization_candidate'
|
|
||||||
db.delete_column('djeuscan_version', 'stabilization_candidate')
|
|
||||||
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'overlay_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'stabilization_candidate': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,187 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
# Adding index on 'Version', fields ['stabilization_candidate']
|
|
||||||
db.create_index('djeuscan_version', ['stabilization_candidate'])
|
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
# Removing index on 'Version', fields ['stabilization_candidate']
|
|
||||||
db.delete_index('djeuscan_version', ['stabilization_candidate'])
|
|
||||||
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'overlay_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'stabilization_candidate': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,205 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
|
|
||||||
# Changing field 'Category.description'
|
|
||||||
db.alter_column('djeuscan_category', 'description', self.gf('django.db.models.fields.TextField')(null=True))
|
|
||||||
|
|
||||||
# Changing field 'Overlay.homepage'
|
|
||||||
db.alter_column('djeuscan_overlay', 'homepage', self.gf('django.db.models.fields.TextField')(null=True))
|
|
||||||
|
|
||||||
# Changing field 'Overlay.description'
|
|
||||||
db.alter_column('djeuscan_overlay', 'description', self.gf('django.db.models.fields.TextField')(null=True))
|
|
||||||
|
|
||||||
# Changing field 'Overlay.overlay_path'
|
|
||||||
db.alter_column('djeuscan_overlay', 'overlay_path', self.gf('django.db.models.fields.CharField')(max_length=256, null=True))
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
|
|
||||||
# Changing field 'Category.description'
|
|
||||||
db.alter_column('djeuscan_category', 'description', self.gf('django.db.models.fields.TextField')(default=''))
|
|
||||||
|
|
||||||
# Changing field 'Overlay.homepage'
|
|
||||||
db.alter_column('djeuscan_overlay', 'homepage', self.gf('django.db.models.fields.TextField')(default=''))
|
|
||||||
|
|
||||||
# Changing field 'Overlay.description'
|
|
||||||
db.alter_column('djeuscan_overlay', 'description', self.gf('django.db.models.fields.TextField')(default=''))
|
|
||||||
|
|
||||||
# Changing field 'Overlay.overlay_path'
|
|
||||||
db.alter_column('djeuscan_overlay', 'overlay_path', self.gf('django.db.models.fields.CharField')(default='', max_length=256))
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'overlay_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'stabilization_candidate': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,187 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import datetime
|
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
|
||||||
|
|
||||||
def forwards(self, orm):
|
|
||||||
|
|
||||||
# Changing field 'Version.metadata_path'
|
|
||||||
db.alter_column('djeuscan_version', 'metadata_path', self.gf('django.db.models.fields.CharField')(max_length=256, null=True))
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
|
||||||
|
|
||||||
# Changing field 'Version.metadata_path'
|
|
||||||
db.alter_column('djeuscan_version', 'metadata_path', self.gf('django.db.models.fields.CharField')(default='', max_length=256))
|
|
||||||
|
|
||||||
models = {
|
|
||||||
'auth.group': {
|
|
||||||
'Meta': {'object_name': 'Group'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'auth.permission': {
|
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
||||||
},
|
|
||||||
'auth.user': {
|
|
||||||
'Meta': {'object_name': 'User'},
|
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
|
||||||
},
|
|
||||||
'contenttypes.contenttype': {
|
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
|
||||||
},
|
|
||||||
'djeuscan.category': {
|
|
||||||
'Meta': {'object_name': 'Category'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.categorylog': {
|
|
||||||
'Meta': {'object_name': 'CategoryLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.euscanresult': {
|
|
||||||
'Meta': {'object_name': 'EuscanResult'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'ebuild': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'result': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'scan_time': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.herd': {
|
|
||||||
'Meta': {'object_name': 'Herd'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'herd': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.herdlog': {
|
|
||||||
'Meta': {'object_name': 'HerdLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'herd': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Herd']"}),
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.log': {
|
|
||||||
'Meta': {'object_name': 'Log'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'n_packages_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_outdated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packages_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_gentoo': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions_upstream': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainer': {
|
|
||||||
'Meta': {'object_name': 'Maintainer'},
|
|
||||||
'email': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.maintainerlog': {
|
|
||||||
'Meta': {'object_name': 'MaintainerLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'}),
|
|
||||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Maintainer']"})
|
|
||||||
},
|
|
||||||
'djeuscan.overlay': {
|
|
||||||
'Meta': {'object_name': 'Overlay'},
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
|
||||||
'overlay_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.package': {
|
|
||||||
'Meta': {'unique_together': "(['category', 'name'],)", 'object_name': 'Package'},
|
|
||||||
'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Herd']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'homepage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'last_version_gentoo': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_gentoo'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_overlay': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_overlay'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'last_version_upstream': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_version_upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['djeuscan.Version']"}),
|
|
||||||
'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['djeuscan.Maintainer']", 'symmetrical': 'False', 'blank': 'True'}),
|
|
||||||
'n_overlay': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_packaged': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'n_versions': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
|
||||||
},
|
|
||||||
'djeuscan.problemreport': {
|
|
||||||
'Meta': {'object_name': 'ProblemReport'},
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'message': ('django.db.models.fields.TextField', [], {}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Version']", 'null': 'True', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.refreshpackagequery': {
|
|
||||||
'Meta': {'object_name': 'RefreshPackageQuery'},
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'})
|
|
||||||
},
|
|
||||||
'djeuscan.version': {
|
|
||||||
'Meta': {'unique_together': "(['package', 'revision', 'version', 'overlay'],)", 'object_name': 'Version'},
|
|
||||||
'confidence': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
||||||
'ebuild_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
|
||||||
'handler': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'metadata_path': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'stabilization_candidate': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
|
|
||||||
'urls': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.versionlog': {
|
|
||||||
'Meta': {'object_name': 'VersionLog'},
|
|
||||||
'action': ('django.db.models.fields.IntegerField', [], {}),
|
|
||||||
'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
||||||
'overlay': ('django.db.models.fields.CharField', [], {'default': "'gentoo'", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['djeuscan.Package']"}),
|
|
||||||
'packaged': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
||||||
'revision': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'slot': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}),
|
|
||||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
|
||||||
'vtype': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'})
|
|
||||||
},
|
|
||||||
'djeuscan.worldlog': {
|
|
||||||
'Meta': {'object_name': 'WorldLog', '_ormbases': ['djeuscan.Log']},
|
|
||||||
'log_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['djeuscan.Log']", 'unique': 'True', 'primary_key': 'True'})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
complete_apps = ['djeuscan']
|
|
@ -1,384 +0,0 @@
|
|||||||
import json
|
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
from django.core.validators import RegexValidator, validate_email, URLValidator
|
|
||||||
from django.core.exceptions import ValidationError
|
|
||||||
|
|
||||||
from django.contrib.auth.models import User
|
|
||||||
|
|
||||||
from djeuscan.managers import PackageManager, VersionLogManager, \
|
|
||||||
EuscanResultManager
|
|
||||||
|
|
||||||
|
|
||||||
validate_category = RegexValidator("^(?:\w+?-\w+?)|virtual$")
|
|
||||||
validate_name = RegexValidator("^\S+?$")
|
|
||||||
validate_revision = RegexValidator("^r\d+?$")
|
|
||||||
validate_url = URLValidator()
|
|
||||||
|
|
||||||
|
|
||||||
class Herd(models.Model):
|
|
||||||
"""
|
|
||||||
A herd is a collection of packages
|
|
||||||
"""
|
|
||||||
|
|
||||||
herd = models.CharField(max_length=128, unique=True,
|
|
||||||
validators=[validate_name])
|
|
||||||
email = models.CharField(max_length=128, blank=True, null=True,
|
|
||||||
validators=[validate_email])
|
|
||||||
maintainers = models.ManyToManyField("Maintainer")
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
if self.email:
|
|
||||||
return '%s <%s>' % (self.herd, self.email)
|
|
||||||
return self.herd
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
self.full_clean()
|
|
||||||
super(Herd, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class Maintainer(models.Model):
|
|
||||||
"""
|
|
||||||
The person who maintains a package
|
|
||||||
"""
|
|
||||||
|
|
||||||
name = models.CharField(max_length=128)
|
|
||||||
email = models.CharField(max_length=128, unique=True,
|
|
||||||
validators=[validate_email])
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return '%s <%s>' % (self.name, self.email)
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
self.full_clean()
|
|
||||||
super(Maintainer, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class Package(models.Model):
|
|
||||||
"""
|
|
||||||
A portage package
|
|
||||||
"""
|
|
||||||
|
|
||||||
category = models.CharField(max_length=128, validators=[validate_category])
|
|
||||||
name = models.CharField(max_length=128, validators=[validate_name])
|
|
||||||
description = models.TextField(blank=True)
|
|
||||||
homepage = models.TextField(blank=True)
|
|
||||||
herds = models.ManyToManyField(Herd, blank=True)
|
|
||||||
maintainers = models.ManyToManyField(Maintainer, blank=True)
|
|
||||||
|
|
||||||
# For performance, we keep pre-computed counters
|
|
||||||
n_versions = models.IntegerField(default=0)
|
|
||||||
n_packaged = models.IntegerField(default=0)
|
|
||||||
n_overlay = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
# And we also pre-compute last versions
|
|
||||||
last_version_gentoo = models.ForeignKey(
|
|
||||||
'Version', blank=True, null=True, related_name="last_version_gentoo",
|
|
||||||
on_delete=models.SET_NULL
|
|
||||||
)
|
|
||||||
last_version_overlay = models.ForeignKey(
|
|
||||||
'Version', blank=True, null=True, related_name="last_version_overlay",
|
|
||||||
on_delete=models.SET_NULL
|
|
||||||
)
|
|
||||||
last_version_upstream = models.ForeignKey(
|
|
||||||
'Version', blank=True, null=True, related_name="last_version_upstream",
|
|
||||||
on_delete=models.SET_NULL
|
|
||||||
)
|
|
||||||
|
|
||||||
objects = PackageManager()
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
unique_together = ['category', 'name']
|
|
||||||
|
|
||||||
def cp(self):
|
|
||||||
return '%s/%s' % (self.category, self.name)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return self.cp()
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
self.full_clean()
|
|
||||||
|
|
||||||
# Clean urls, accept only real urls
|
|
||||||
urls = []
|
|
||||||
for url in self.homepages:
|
|
||||||
try:
|
|
||||||
validate_url(url)
|
|
||||||
except ValidationError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
urls.append(url)
|
|
||||||
self.homepage = " ".join(urls)
|
|
||||||
|
|
||||||
super(Package, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def homepages(self):
|
|
||||||
return self.homepage.split(' ')
|
|
||||||
|
|
||||||
@property
|
|
||||||
def last_version(self):
|
|
||||||
from euscan.helpers import vercmp
|
|
||||||
|
|
||||||
versions = [
|
|
||||||
self.last_version_gentoo,
|
|
||||||
self.last_version_overlay,
|
|
||||||
self.last_version_upstream
|
|
||||||
]
|
|
||||||
_cmp = lambda x, y: vercmp(
|
|
||||||
unicode(self), x.version if x else "", y.version if y else ""
|
|
||||||
)
|
|
||||||
return sorted(versions, cmp=_cmp)[-1]
|
|
||||||
|
|
||||||
|
|
||||||
class Version(models.Model):
|
|
||||||
"""
|
|
||||||
Version associated to a package
|
|
||||||
"""
|
|
||||||
|
|
||||||
package = models.ForeignKey(Package)
|
|
||||||
slot = models.CharField(max_length=128, blank=True, default="")
|
|
||||||
revision = models.CharField(max_length=128)
|
|
||||||
version = models.CharField(max_length=128)
|
|
||||||
packaged = models.BooleanField()
|
|
||||||
overlay = models.CharField(max_length=128, default='gentoo', db_index=True,
|
|
||||||
validators=[validate_name], blank=True)
|
|
||||||
urls = models.TextField(blank=True)
|
|
||||||
|
|
||||||
vtype = models.CharField(max_length=128, blank=True)
|
|
||||||
handler = models.CharField(max_length=128, blank=True, db_index=True)
|
|
||||||
confidence = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
ebuild_path = models.CharField(blank=True, max_length=256)
|
|
||||||
metadata_path = models.CharField(null=True, blank=True, max_length=256)
|
|
||||||
|
|
||||||
# If this is not null then the version is a stabilization candidate
|
|
||||||
stabilization_candidate = models.DateField(
|
|
||||||
blank=True, null=True, default=None, db_index=True
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
unique_together = ['package', 'revision', 'version', 'overlay']
|
|
||||||
|
|
||||||
@property
|
|
||||||
def tag(self):
|
|
||||||
return '%s%s%s' % (
|
|
||||||
self.version,
|
|
||||||
"-" + self.revision if self.revision != "r0" else "",
|
|
||||||
"-" + self.overlay if self.overlay else "-upstream"
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def urls_list(self):
|
|
||||||
return self.urls.split()
|
|
||||||
|
|
||||||
def cpv(self):
|
|
||||||
return '%s/%s-%s%s' % (
|
|
||||||
self.package.category, self.package.name, self.version,
|
|
||||||
'-' + self.revision if self.revision != 'r0' else ''
|
|
||||||
)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return '%s/%s-%s%s%s [%s]' % (
|
|
||||||
self.package.category, self.package.name, self.version,
|
|
||||||
'-' + self.revision if self.revision != 'r0' else '',
|
|
||||||
':' + self.slot if self.slot and self.slot != '0' else '',
|
|
||||||
self.overlay or "<upstream>"
|
|
||||||
)
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
self.full_clean()
|
|
||||||
super(Version, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class VersionLog(models.Model):
|
|
||||||
VERSION_ADDED = 1
|
|
||||||
VERSION_REMOVED = 2
|
|
||||||
VERSION_ACTIONS = (
|
|
||||||
(VERSION_ADDED, 'Added'),
|
|
||||||
(VERSION_REMOVED, 'Removed')
|
|
||||||
)
|
|
||||||
|
|
||||||
package = models.ForeignKey(Package)
|
|
||||||
datetime = models.DateTimeField(auto_now_add=True)
|
|
||||||
slot = models.CharField(max_length=128, blank=True, default="")
|
|
||||||
revision = models.CharField(max_length=128)
|
|
||||||
version = models.CharField(max_length=128)
|
|
||||||
packaged = models.BooleanField()
|
|
||||||
overlay = models.CharField(max_length=128, default='gentoo',
|
|
||||||
validators=[validate_name], blank=True)
|
|
||||||
action = models.IntegerField(choices=VERSION_ACTIONS)
|
|
||||||
|
|
||||||
vtype = models.CharField(max_length=128, blank=True)
|
|
||||||
|
|
||||||
objects = VersionLogManager()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def tag(self):
|
|
||||||
return '%s%s%s' % (
|
|
||||||
self.version,
|
|
||||||
"-" + self.revision if self.revision != "r0" else "",
|
|
||||||
"-" + self.overlay if self.overlay else "-upstream"
|
|
||||||
)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
txt = '+ ' if self.action == self.VERSION_ADDED else '- '
|
|
||||||
txt += '%s/%s-%s%s%s [%s]' % (
|
|
||||||
self.package.category, self.package.name, self.version,
|
|
||||||
'-' + self.revision if self.revision != 'r0' else '',
|
|
||||||
':' + self.slot if self.slot and self.slot != '0' else '',
|
|
||||||
self.overlay or "<upstream>"
|
|
||||||
)
|
|
||||||
return txt
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
self.full_clean()
|
|
||||||
super(VersionLog, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class EuscanResult(models.Model):
|
|
||||||
package = models.ForeignKey(Package)
|
|
||||||
datetime = models.DateTimeField()
|
|
||||||
result = models.TextField(blank=True)
|
|
||||||
|
|
||||||
scan_time = models.FloatField(null=True, blank=True)
|
|
||||||
ebuild = models.CharField(blank=True, max_length=256)
|
|
||||||
|
|
||||||
objects = EuscanResultManager()
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
get_latest_by = "datetime"
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
self.full_clean()
|
|
||||||
super(EuscanResult, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def messages(self):
|
|
||||||
try:
|
|
||||||
result = json.loads(self.result)
|
|
||||||
except ValueError:
|
|
||||||
return self.result
|
|
||||||
|
|
||||||
if result and self.package.cp() in result:
|
|
||||||
return result[self.package.cp()]['messages']
|
|
||||||
else:
|
|
||||||
return ""
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return '[%s] %s/%s' % (
|
|
||||||
self.datetime, self.package.category, self.package.name
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class Category(models.Model):
|
|
||||||
name = models.CharField(max_length=128, validators=[validate_category],
|
|
||||||
unique=True)
|
|
||||||
description = models.TextField(blank=True, null=True)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name_plural = "categories"
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
|
|
||||||
class Overlay(models.Model):
|
|
||||||
name = models.CharField(max_length=128, validators=[validate_name],
|
|
||||||
unique=True)
|
|
||||||
description = models.TextField(blank=True, null=True)
|
|
||||||
homepage = models.TextField(blank=True, null=True)
|
|
||||||
overlay_path = models.CharField(blank=True, null=True, max_length=256)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
|
|
||||||
class Log(models.Model):
|
|
||||||
"""
|
|
||||||
Model used for keeping data for charts
|
|
||||||
"""
|
|
||||||
|
|
||||||
datetime = models.DateTimeField()
|
|
||||||
|
|
||||||
# Packages up to date in the main portage tree
|
|
||||||
n_packages_gentoo = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
# Packages up to date in an overlay
|
|
||||||
n_packages_overlay = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
# Packages outdated
|
|
||||||
n_packages_outdated = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
# Versions in the main portage tree
|
|
||||||
n_versions_gentoo = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
# Versions in overlays
|
|
||||||
n_versions_overlay = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
# Upstream versions, not in the main tree or overlays
|
|
||||||
n_versions_upstream = models.IntegerField(default=0)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return u'[%d:%d:%d] [%d:%d:%d]' % (
|
|
||||||
self.n_packages_gentoo, self.n_packages_overlay,
|
|
||||||
self.n_packages_outdated, self.n_versions_gentoo,
|
|
||||||
self.n_versions_overlay, self.n_versions_upstream
|
|
||||||
)
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
self.full_clean()
|
|
||||||
super(Log, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class WorldLog(Log):
|
|
||||||
def __unicode__(self):
|
|
||||||
return u'world ' + Log.__unicode__(self)
|
|
||||||
|
|
||||||
|
|
||||||
class CategoryLog(Log):
|
|
||||||
category = models.CharField(max_length=128, validators=[validate_category])
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return u'%s %s' % (self.category, Log.__unicode__(self))
|
|
||||||
|
|
||||||
|
|
||||||
class HerdLog(Log):
|
|
||||||
herd = models.ForeignKey(Herd)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return u'%s %s' % (self.herd, Log.__unicode__(self))
|
|
||||||
|
|
||||||
|
|
||||||
class MaintainerLog(Log):
|
|
||||||
maintainer = models.ForeignKey(Maintainer)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return u'%s %s' % (self.maintainer, Log.__unicode__(self))
|
|
||||||
|
|
||||||
|
|
||||||
class RefreshPackageQuery(models.Model):
|
|
||||||
package = models.ForeignKey(Package)
|
|
||||||
priority = models.IntegerField(default=0)
|
|
||||||
users = models.ManyToManyField(User)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def position(self):
|
|
||||||
ordered = RefreshPackageQuery.objects.all().order_by("-priority")
|
|
||||||
for pos, obj in enumerate(ordered, start=1):
|
|
||||||
if obj == self:
|
|
||||||
return pos
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return u'[%d] %s' % (self.priority, self.package)
|
|
||||||
|
|
||||||
|
|
||||||
class ProblemReport(models.Model):
|
|
||||||
package = models.ForeignKey(Package)
|
|
||||||
version = models.ForeignKey(Version, null=True, blank=True)
|
|
||||||
subject = models.CharField(max_length=128)
|
|
||||||
message = models.TextField()
|
|
||||||
datetime = models.DateTimeField(auto_now_add=True)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return u"[%s] %s" % (self.datetime, self.package)
|
|
@ -1,30 +0,0 @@
|
|||||||
class FakeLogger(object):
|
|
||||||
def __getattr__(self, key):
|
|
||||||
return lambda *x, **y: None
|
|
||||||
|
|
||||||
|
|
||||||
def set_verbosity_level(logger, verbosity):
|
|
||||||
import logging
|
|
||||||
|
|
||||||
try:
|
|
||||||
verbosity = int(verbosity)
|
|
||||||
except (ValueError, TypeError):
|
|
||||||
return logger
|
|
||||||
|
|
||||||
levels = {
|
|
||||||
0: logging.DEBUG,
|
|
||||||
1: logging.INFO,
|
|
||||||
2: logging.WARNING,
|
|
||||||
3: logging.ERROR,
|
|
||||||
4: logging.CRITICAL
|
|
||||||
}
|
|
||||||
|
|
||||||
if verbosity < 0:
|
|
||||||
verbosity = 0
|
|
||||||
|
|
||||||
if verbosity > 4:
|
|
||||||
verbosity = 4
|
|
||||||
|
|
||||||
logger.setLevel(levels[verbosity])
|
|
||||||
|
|
||||||
return logger
|
|
@ -1,6 +0,0 @@
|
|||||||
__all__ = ["regen_rrds", "update_counters", "update_portage_trees", "stabilization_candidates"]
|
|
||||||
|
|
||||||
from regen_rrds import regen_rrds
|
|
||||||
from update_counters import update_counters
|
|
||||||
from update_portage_trees import update_portage_trees
|
|
||||||
from stabilization_candidates import stabilization_candidates
|
|
@ -1,31 +0,0 @@
|
|||||||
from djeuscan.models import HerdLog, MaintainerLog, CategoryLog, WorldLog
|
|
||||||
from djeuscan import charts
|
|
||||||
|
|
||||||
from djeuscan.processing import FakeLogger
|
|
||||||
|
|
||||||
|
|
||||||
def regen_rrds(logger=None):
|
|
||||||
"""
|
|
||||||
Regenerates the rrd database
|
|
||||||
"""
|
|
||||||
|
|
||||||
if logger is None:
|
|
||||||
logger = FakeLogger()
|
|
||||||
|
|
||||||
logger.info("Regenering RRDs for world")
|
|
||||||
for wlog in WorldLog.objects.all():
|
|
||||||
charts.rrd_update('world', wlog.datetime, wlog)
|
|
||||||
|
|
||||||
logger.info("Regenering RRDs for categories")
|
|
||||||
for clog in CategoryLog.objects.all():
|
|
||||||
charts.rrd_update('category-%s' % clog.category,
|
|
||||||
clog.datetime, clog)
|
|
||||||
|
|
||||||
logger.info("Regenering RRDs for herds")
|
|
||||||
for hlog in HerdLog.objects.all():
|
|
||||||
charts.rrd_update('herd-%d' % hlog.herd.id, hlog.datetime, hlog)
|
|
||||||
|
|
||||||
logger.info("Regenering RRDs for maintainers")
|
|
||||||
for mlog in MaintainerLog.objects.all():
|
|
||||||
charts.rrd_update('maintainer-%d' % mlog.maintainer.id,
|
|
||||||
mlog.datetime, mlog)
|
|
@ -1,74 +0,0 @@
|
|||||||
import os.path
|
|
||||||
import re
|
|
||||||
from datetime import datetime, timedelta
|
|
||||||
from gentoolkit.package import Package
|
|
||||||
from dateutil.parser import parse
|
|
||||||
|
|
||||||
from django.db.models import Q
|
|
||||||
|
|
||||||
from gentoolkit.errors import GentoolkitFatalError
|
|
||||||
|
|
||||||
from djeuscan.processing import FakeLogger
|
|
||||||
from djeuscan.models import Version
|
|
||||||
|
|
||||||
|
|
||||||
def get_version_date(version, date_limit):
|
|
||||||
"""
|
|
||||||
Returns the datetime when the version was added to Portage,
|
|
||||||
if less than date_limit
|
|
||||||
"""
|
|
||||||
changelog_path = os.path.join(
|
|
||||||
os.path.dirname(version.ebuild_path),
|
|
||||||
"ChangeLog"
|
|
||||||
)
|
|
||||||
if not os.path.exists(changelog_path):
|
|
||||||
return
|
|
||||||
|
|
||||||
with open(changelog_path) as changelog:
|
|
||||||
for line in changelog:
|
|
||||||
match = re.match(
|
|
||||||
r"^\*([^\(]+) \((\d\d \w\w\w \d\d\d\d)\)\s*$", line
|
|
||||||
)
|
|
||||||
if match:
|
|
||||||
version_date = parse(match.group(2)).date()
|
|
||||||
if version_date < date_limit:
|
|
||||||
return version_date
|
|
||||||
|
|
||||||
|
|
||||||
def stabilization_candidates(days_to_candidate=30, logger=None):
|
|
||||||
"""
|
|
||||||
Collect stabilization candidates
|
|
||||||
"""
|
|
||||||
|
|
||||||
if logger is None:
|
|
||||||
logger = FakeLogger()
|
|
||||||
|
|
||||||
date_diff = (datetime.utcnow() - timedelta(days=days_to_candidate))
|
|
||||||
date_limit = date_diff.date()
|
|
||||||
|
|
||||||
logger.info("Collecting stabilization candidates - date_limit=%s",
|
|
||||||
str(date_limit))
|
|
||||||
|
|
||||||
# Set all versions to not be stabilization_candidates
|
|
||||||
#Version.objects.update(stabilization_candidate=False)
|
|
||||||
|
|
||||||
# For every version check if it's unstable.
|
|
||||||
# If it is then check if can be a stabilization candidate
|
|
||||||
versions = Version.objects.filter(overlay='gentoo').filter(
|
|
||||||
Q(vtype='release') | Q(vtype='p'))
|
|
||||||
for version in versions:
|
|
||||||
pkg = Package(version.cpv())
|
|
||||||
try:
|
|
||||||
keywords = pkg.environment("KEYWORDS").split()
|
|
||||||
except GentoolkitFatalError:
|
|
||||||
logger.warning("Error while processing %s!", version)
|
|
||||||
continue
|
|
||||||
if all([x.startswith("~") for x in keywords]):
|
|
||||||
version_date = get_version_date(version, date_limit)
|
|
||||||
if version_date:
|
|
||||||
logger.info('+ [s] %s @ %s', version, version_date)
|
|
||||||
# XXX: What should we save? A flag and the date?Just the date?
|
|
||||||
version.stabilization_candidate = version_date
|
|
||||||
version.save()
|
|
||||||
|
|
||||||
logger.info("Finished collecting stabilization candidates")
|
|
@ -1,174 +0,0 @@
|
|||||||
from django.db.transaction import commit_on_success
|
|
||||||
from django.utils import timezone
|
|
||||||
|
|
||||||
from djeuscan.models import Package, Herd, Maintainer, Version, HerdLog, \
|
|
||||||
MaintainerLog, CategoryLog, WorldLog
|
|
||||||
from djeuscan import charts
|
|
||||||
from djeuscan.processing import FakeLogger
|
|
||||||
|
|
||||||
from distutils.version import StrictVersion, LooseVersion
|
|
||||||
|
|
||||||
|
|
||||||
def _compare_versions(version1, version2):
|
|
||||||
try:
|
|
||||||
return cmp(StrictVersion(version1), StrictVersion(version2))
|
|
||||||
# in case of abnormal version number, fall back to LooseVersion
|
|
||||||
except ValueError:
|
|
||||||
return cmp(LooseVersion(version1), LooseVersion(version2))
|
|
||||||
|
|
||||||
|
|
||||||
def _add_safe(storage, key):
|
|
||||||
if key not in storage:
|
|
||||||
storage[key] = 1
|
|
||||||
else:
|
|
||||||
storage[key] += 1
|
|
||||||
|
|
||||||
|
|
||||||
def _add_last_ver(storage, version):
|
|
||||||
key = version['package_id']
|
|
||||||
if key not in storage:
|
|
||||||
storage[key] = version
|
|
||||||
return
|
|
||||||
if version['version'].startswith('9999'):
|
|
||||||
return
|
|
||||||
if _compare_versions(storage[key]['version'],
|
|
||||||
version['version']) < 0:
|
|
||||||
storage[key] = version
|
|
||||||
|
|
||||||
|
|
||||||
@commit_on_success
|
|
||||||
def update_counters(fast=False, nolog=False, logger=None):
|
|
||||||
logger = logger or FakeLogger()
|
|
||||||
|
|
||||||
now = timezone.now()
|
|
||||||
|
|
||||||
categories = {}
|
|
||||||
herds = {}
|
|
||||||
maintainers = {}
|
|
||||||
|
|
||||||
wlog = None
|
|
||||||
|
|
||||||
if not nolog:
|
|
||||||
wlog = WorldLog()
|
|
||||||
wlog.datetime = now
|
|
||||||
|
|
||||||
for cat in Package.objects.values('category').distinct():
|
|
||||||
clog = CategoryLog()
|
|
||||||
clog.datetime = now
|
|
||||||
clog.category = cat['category']
|
|
||||||
categories[clog.category] = clog
|
|
||||||
|
|
||||||
for herd in Herd.objects.all():
|
|
||||||
hlog = HerdLog()
|
|
||||||
hlog.datetime = now
|
|
||||||
hlog.herd = herd
|
|
||||||
herds[herd.id] = hlog
|
|
||||||
|
|
||||||
for maintainer in Maintainer.objects.all():
|
|
||||||
mlog = MaintainerLog()
|
|
||||||
mlog.datetime = now
|
|
||||||
mlog.maintainer = maintainer
|
|
||||||
maintainers[maintainer.id] = mlog
|
|
||||||
|
|
||||||
package_queryset = Package.objects.all()
|
|
||||||
|
|
||||||
n_versions = {}
|
|
||||||
n_packaged = {}
|
|
||||||
n_overlay = {}
|
|
||||||
|
|
||||||
last_versions_gentoo = {}
|
|
||||||
last_versions_overlay = {}
|
|
||||||
last_versions_upstream = {}
|
|
||||||
|
|
||||||
if not fast:
|
|
||||||
attrs = ['id', 'version', 'overlay', 'packaged', 'package_id']
|
|
||||||
for version in Version.objects.all().values(*attrs):
|
|
||||||
overlay, packaged = version['overlay'], version['packaged']
|
|
||||||
package_id = version['package_id']
|
|
||||||
|
|
||||||
_add_safe(n_versions, package_id)
|
|
||||||
|
|
||||||
if not packaged:
|
|
||||||
_add_last_ver(last_versions_upstream, version)
|
|
||||||
continue
|
|
||||||
if overlay == 'gentoo':
|
|
||||||
_add_safe(n_packaged, package_id)
|
|
||||||
_add_last_ver(last_versions_gentoo, version)
|
|
||||||
else:
|
|
||||||
_add_safe(n_overlay, package_id)
|
|
||||||
_add_last_ver(last_versions_overlay, version)
|
|
||||||
|
|
||||||
for package in package_queryset.select_related('herds', 'maintainers'):
|
|
||||||
if not fast:
|
|
||||||
package.n_versions = n_versions.get(package.id, 0)
|
|
||||||
package.n_packaged = n_packaged.get(package.id, 0)
|
|
||||||
package.n_overlay = n_overlay.get(package.id, 0)
|
|
||||||
|
|
||||||
default = {'id': None}
|
|
||||||
package.last_version_gentoo_id = last_versions_gentoo.get(
|
|
||||||
package.id, default
|
|
||||||
)['id']
|
|
||||||
package.last_version_overlay_id = last_versions_overlay.get(
|
|
||||||
package.id, default
|
|
||||||
)['id']
|
|
||||||
package.last_version_upstream_id = last_versions_upstream.get(
|
|
||||||
package.id, default
|
|
||||||
)['id']
|
|
||||||
package.save()
|
|
||||||
|
|
||||||
n_packages_gentoo = int(package.n_packaged == package.n_versions)
|
|
||||||
n_packages_overlay = int(package.n_overlay and package.n_packaged \
|
|
||||||
+ package.n_overlay == package.n_versions)
|
|
||||||
n_packages_outdated = int(package.n_packaged + package.n_overlay \
|
|
||||||
< package.n_versions)
|
|
||||||
|
|
||||||
def update_row(storage, key):
|
|
||||||
storage[key].n_packages_gentoo += n_packages_gentoo
|
|
||||||
storage[key].n_packages_overlay += n_packages_overlay
|
|
||||||
storage[key].n_packages_outdated += n_packages_outdated
|
|
||||||
|
|
||||||
storage[key].n_versions_gentoo += package.n_packaged
|
|
||||||
storage[key].n_versions_overlay += package.n_overlay
|
|
||||||
storage[key].n_versions_upstream += package.n_versions - \
|
|
||||||
package.n_packaged - \
|
|
||||||
package.n_overlay
|
|
||||||
|
|
||||||
def update_log(storage, qs):
|
|
||||||
for row in qs:
|
|
||||||
update_row(storage, row['id'])
|
|
||||||
|
|
||||||
if not nolog:
|
|
||||||
update_log(herds, package.herds.all().values('id'))
|
|
||||||
update_log(maintainers, package.maintainers.all().values('id'))
|
|
||||||
update_row(categories, package.category)
|
|
||||||
|
|
||||||
wlog.n_packages_gentoo += n_packages_gentoo
|
|
||||||
wlog.n_packages_overlay += n_packages_overlay
|
|
||||||
wlog.n_packages_outdated += n_packages_outdated
|
|
||||||
|
|
||||||
wlog.n_versions_gentoo += package.n_packaged
|
|
||||||
wlog.n_versions_overlay += package.n_overlay
|
|
||||||
wlog.n_versions_upstream += package.n_versions - \
|
|
||||||
package.n_packaged - \
|
|
||||||
package.n_overlay
|
|
||||||
|
|
||||||
if nolog:
|
|
||||||
return
|
|
||||||
|
|
||||||
for clog in categories.values():
|
|
||||||
logger.info('+ [cl] %s', clog)
|
|
||||||
charts.rrd_update('category-%s' % clog.category, now, clog)
|
|
||||||
clog.save()
|
|
||||||
|
|
||||||
for hlog in herds.values():
|
|
||||||
logger.info('+ [hl] %s', hlog)
|
|
||||||
charts.rrd_update('herd-%d' % hlog.herd.id, now, hlog)
|
|
||||||
hlog.save()
|
|
||||||
|
|
||||||
for mlog in maintainers.values():
|
|
||||||
logger.info('+ [ml] %s', mlog)
|
|
||||||
charts.rrd_update('maintainer-%d' % mlog.maintainer.id, now, mlog)
|
|
||||||
mlog.save()
|
|
||||||
|
|
||||||
charts.rrd_update('world', now, wlog)
|
|
||||||
wlog.save()
|
|
@ -1,133 +0,0 @@
|
|||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
|
|
||||||
def _launch_command(cmd, env=None, logger=None):
|
|
||||||
"""
|
|
||||||
Helper for launching shell commands inside tasks
|
|
||||||
"""
|
|
||||||
import subprocess
|
|
||||||
import select
|
|
||||||
|
|
||||||
fp = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE,
|
|
||||||
stderr=subprocess.PIPE)
|
|
||||||
|
|
||||||
mask = select.EPOLLIN | select.EPOLLHUP | select.EPOLLERR
|
|
||||||
|
|
||||||
epoll = select.epoll()
|
|
||||||
epoll.register(fp.stdout.fileno(), mask)
|
|
||||||
epoll.register(fp.stderr.fileno(), mask)
|
|
||||||
|
|
||||||
if logger:
|
|
||||||
info, error = logger.info, logger.error
|
|
||||||
else:
|
|
||||||
info = lambda x: sys.stdout.write(x + '\n')
|
|
||||||
error = lambda x: sys.stderr.write(x + '\n')
|
|
||||||
|
|
||||||
try:
|
|
||||||
exited = False
|
|
||||||
while not exited:
|
|
||||||
events = epoll.poll(1)
|
|
||||||
for fileno, event in events:
|
|
||||||
if event & select.EPOLLIN:
|
|
||||||
if fileno == fp.stdout.fileno():
|
|
||||||
source, out = fp.stdout, info
|
|
||||||
else:
|
|
||||||
source, out = fp.stderr, error
|
|
||||||
line = source.readline().rstrip('\n')
|
|
||||||
out("%s[%s]: %s" % (cmd[0], fp.pid, line))
|
|
||||||
elif event & (select.EPOLLERR | select.EPOLLHUP):
|
|
||||||
exited = True
|
|
||||||
finally:
|
|
||||||
epoll.close()
|
|
||||||
|
|
||||||
fp.wait()
|
|
||||||
|
|
||||||
|
|
||||||
def emerge_sync(logger):
|
|
||||||
"""
|
|
||||||
Launches an emerge --sync
|
|
||||||
"""
|
|
||||||
cmd = ["emerge", "--sync", "--root", settings.PORTAGE_ROOT,
|
|
||||||
"--config-root", settings.PORTAGE_CONFIGROOT]
|
|
||||||
return _launch_command(cmd, logger=logger)
|
|
||||||
|
|
||||||
|
|
||||||
def emerge_metadata(logger):
|
|
||||||
"""
|
|
||||||
Launches an emerge --metadata
|
|
||||||
"""
|
|
||||||
cmd = ["emerge", "--metadata", "--root", settings.PORTAGE_ROOT,
|
|
||||||
"--config-root", settings.PORTAGE_CONFIGROOT]
|
|
||||||
return _launch_command(cmd, logger=logger)
|
|
||||||
|
|
||||||
|
|
||||||
def layman_sync(logger, cache=True):
|
|
||||||
"""
|
|
||||||
Syncs Layman repos
|
|
||||||
"""
|
|
||||||
from layman import Layman
|
|
||||||
import shutil
|
|
||||||
|
|
||||||
l = Layman(stderr=sys.__stderr__, stdin=sys.__stdin__,
|
|
||||||
stdout=sys.__stdout__, config=settings.LAYMAN_CONFIG, root="/")
|
|
||||||
|
|
||||||
installed_overlays = l.get_installed()
|
|
||||||
|
|
||||||
for overlay in installed_overlays:
|
|
||||||
logger.info('Cleaning cache for overlay %s...' % overlay)
|
|
||||||
overlay_path = os.path.join(l.config['storage'], overlay)
|
|
||||||
dirs = [os.path.join(overlay_path, 'metadata/cache'),
|
|
||||||
os.path.join(overlay_path, 'metadata/md5-cache')]
|
|
||||||
files = [os.path.join(overlay_path, 'profiles/use.local.desc')]
|
|
||||||
for dirname in dirs:
|
|
||||||
if os.path.isdir(dirname):
|
|
||||||
shutil.rmtree(dirname, True)
|
|
||||||
for filename in files:
|
|
||||||
if os.path.exists(filename):
|
|
||||||
os.remove(filename)
|
|
||||||
|
|
||||||
# FIXME, try to find a way to log layman output...
|
|
||||||
#l.sync(installed_overlays, output_results=False)
|
|
||||||
env = dict(os.environ)
|
|
||||||
env['ROOT'] = '/'
|
|
||||||
cmd = ['layman', '-S', '--config', settings.LAYMAN_CONFIG]
|
|
||||||
_launch_command(cmd, env=env, logger=logger)
|
|
||||||
|
|
||||||
cmd = ['egencache', '--jobs', "%s" % settings.EGENCACHE_JOBS,
|
|
||||||
'--rsync', '--config-root', settings.PORTAGE_CONFIGROOT,
|
|
||||||
'--update', '--update-use-local-desc']
|
|
||||||
|
|
||||||
for overlay in installed_overlays:
|
|
||||||
logger.info('Generating cache for overlay %s...' % overlay)
|
|
||||||
overlay_path = os.path.join(l.config['storage'], overlay)
|
|
||||||
repo_path = os.path.join(overlay_path, 'profiles/repo_name')
|
|
||||||
if not os.path.exists(repo_path):
|
|
||||||
continue
|
|
||||||
_launch_command(cmd + ['--repo', overlay], logger=logger)
|
|
||||||
|
|
||||||
|
|
||||||
def eix_update(logger):
|
|
||||||
"""
|
|
||||||
Launches eix-update
|
|
||||||
"""
|
|
||||||
cmd = ["eix-update"]
|
|
||||||
return _launch_command(cmd, logger=logger)
|
|
||||||
|
|
||||||
|
|
||||||
def update_portage_trees(logger=None):
|
|
||||||
from djeuscan.processing import FakeLogger
|
|
||||||
|
|
||||||
logger = logger or FakeLogger()
|
|
||||||
logger.info("Running emerge --sync")
|
|
||||||
emerge_sync(logger)
|
|
||||||
emerge_metadata(logger)
|
|
||||||
logger.info("Running layman --sync")
|
|
||||||
layman_sync(logger, cache=True)
|
|
||||||
#logger.info("Running emerge --regen")
|
|
||||||
#emerge_regen(logger)
|
|
||||||
logger.info("Running eix-update")
|
|
||||||
eix_update(logger)
|
|
||||||
logger.info("Done!")
|
|
@ -1,7 +0,0 @@
|
|||||||
__all__ = [
|
|
||||||
"scan_metadata", "scan_portage", "scan_upstream",
|
|
||||||
]
|
|
||||||
|
|
||||||
from scan_metadata import scan_metadata
|
|
||||||
from scan_portage import scan_portage
|
|
||||||
from scan_upstream import scan_upstream
|
|
@ -1,255 +0,0 @@
|
|||||||
import os
|
|
||||||
|
|
||||||
import portage
|
|
||||||
from gentoolkit.metadata import MetaData
|
|
||||||
|
|
||||||
import xml.etree.cElementTree as etree
|
|
||||||
|
|
||||||
from django.db.transaction import commit_on_success
|
|
||||||
from django.core.management.color import color_style
|
|
||||||
from django.core.exceptions import ValidationError
|
|
||||||
|
|
||||||
from djeuscan.models import Package, Version, Herd, Maintainer
|
|
||||||
from djeuscan.processing import FakeLogger
|
|
||||||
|
|
||||||
|
|
||||||
class ScanMetadata(object):
|
|
||||||
def __init__(self, logger=None):
|
|
||||||
self.style = color_style()
|
|
||||||
self.logger = logger or FakeLogger()
|
|
||||||
|
|
||||||
def get_package(self, query):
|
|
||||||
try:
|
|
||||||
return Package.objects.get(name=query)
|
|
||||||
except Package.DoesNotExist:
|
|
||||||
pass
|
|
||||||
|
|
||||||
try:
|
|
||||||
category, package = portage.catsplit(query)
|
|
||||||
return Package.objects.get(category=category, name=package)
|
|
||||||
except Package.DoesNotExist:
|
|
||||||
pass
|
|
||||||
|
|
||||||
try:
|
|
||||||
category, package, ver, rev = portage.catpkgsplit(query)
|
|
||||||
return Package.objects.get(category=category, name=package)
|
|
||||||
except Package.DoesNotExist:
|
|
||||||
pass
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
def metadata_from_db(self, query, pkg=None):
|
|
||||||
if not pkg:
|
|
||||||
pkg = self.get_package(query)
|
|
||||||
|
|
||||||
try:
|
|
||||||
version = Version.objects.filter(package=pkg).\
|
|
||||||
values('metadata_path').order_by('version', 'revision')[0]
|
|
||||||
except IndexError:
|
|
||||||
return pkg, None
|
|
||||||
|
|
||||||
if not version['metadata_path']:
|
|
||||||
return pkg, None
|
|
||||||
return pkg, MetaData(version['metadata_path'])
|
|
||||||
|
|
||||||
def metadata_from_portage(self, query, pkg=None):
|
|
||||||
from gentoolkit.query import Query
|
|
||||||
|
|
||||||
matches = Query(query).smart_find(
|
|
||||||
in_installed=True,
|
|
||||||
in_porttree=True,
|
|
||||||
in_overlay=True,
|
|
||||||
include_masked=True,
|
|
||||||
show_progress=False,
|
|
||||||
no_matches_fatal=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
if not matches:
|
|
||||||
self.logger.error(
|
|
||||||
self.style.ERROR("Unknown package '%s'" % query)
|
|
||||||
)
|
|
||||||
return pkg, None
|
|
||||||
|
|
||||||
matches = sorted(matches)
|
|
||||||
package = matches.pop()
|
|
||||||
if '9999' in package.version and len(matches):
|
|
||||||
package = matches.pop()
|
|
||||||
|
|
||||||
if not pkg:
|
|
||||||
pkg, created = Package.objects.get_or_create(
|
|
||||||
category=package.category, name=package.name
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
created = False
|
|
||||||
|
|
||||||
if created:
|
|
||||||
self.logger.info('+ [p] %s/%s' % (pkg.category, pkg.name))
|
|
||||||
|
|
||||||
return pkg, package.metadata
|
|
||||||
|
|
||||||
def scan(self, query=None, pkg=None):
|
|
||||||
try:
|
|
||||||
metadata = None
|
|
||||||
pkg, metadata = self.metadata_from_db(query, pkg)
|
|
||||||
|
|
||||||
if not metadata:
|
|
||||||
pkg, metadata = self.metadata_from_portage(query, pkg)
|
|
||||||
|
|
||||||
if not metadata:
|
|
||||||
return
|
|
||||||
except Exception as e:
|
|
||||||
if pkg:
|
|
||||||
self.logger.error(
|
|
||||||
self.style.ERROR('%s/%s: %s' %
|
|
||||||
(pkg.category, pkg.name, str(e)))
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
self.logger.error(
|
|
||||||
self.style.ERROR('%s: %s' % (query, str(e)))
|
|
||||||
)
|
|
||||||
return
|
|
||||||
|
|
||||||
herds = dict(
|
|
||||||
[(herd[0], herd) for herd in metadata.herds(True)]
|
|
||||||
)
|
|
||||||
maintainers = dict(
|
|
||||||
[(m.email, m) for m in metadata.maintainers()]
|
|
||||||
)
|
|
||||||
|
|
||||||
existing_herds = [h.herd for h in pkg.herds.all()]
|
|
||||||
new_herds = set(herds.keys()).difference(existing_herds)
|
|
||||||
old_herds = set(existing_herds).difference(herds.keys())
|
|
||||||
|
|
||||||
existing_maintainers = [m.email for m in pkg.maintainers.all()]
|
|
||||||
new_maintainers = set(maintainers.keys()).\
|
|
||||||
difference(existing_maintainers)
|
|
||||||
old_maintainers = set(existing_maintainers).\
|
|
||||||
difference(maintainers.keys())
|
|
||||||
|
|
||||||
for herd in pkg.herds.all():
|
|
||||||
if herd.herd in old_herds:
|
|
||||||
pkg.herds.remove(herd)
|
|
||||||
|
|
||||||
for herd in new_herds:
|
|
||||||
herd = self.store_herd(*herds[herd])
|
|
||||||
pkg.herds.add(herd)
|
|
||||||
|
|
||||||
for maintainer in pkg.maintainers.all():
|
|
||||||
email = maintainer.email
|
|
||||||
name = maintainer.name
|
|
||||||
if email in old_maintainers:
|
|
||||||
pkg.maintainers.remove(maintainer)
|
|
||||||
if (email in maintainers and
|
|
||||||
email == name and
|
|
||||||
maintainers[email].name != name and
|
|
||||||
maintainers[email].name):
|
|
||||||
maintainer.name = maintainers[email].name
|
|
||||||
maintainer.save()
|
|
||||||
|
|
||||||
for maintainer in new_maintainers:
|
|
||||||
maintainer = maintainers[maintainer]
|
|
||||||
try:
|
|
||||||
maintainer = self.store_maintainer(
|
|
||||||
maintainer.name, maintainer.email
|
|
||||||
)
|
|
||||||
pkg.maintainers.add(maintainer)
|
|
||||||
except ValidationError:
|
|
||||||
self.logger.error(
|
|
||||||
self.style.ERROR("Bad maintainer: '%s' '%s'" % \
|
|
||||||
(maintainer.name, maintainer.email))
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg.save()
|
|
||||||
|
|
||||||
def store_herd(self, name, email):
|
|
||||||
if not name:
|
|
||||||
name = '{nil}'
|
|
||||||
name = name.strip("\r").strip("\n").strip("\t").strip()
|
|
||||||
|
|
||||||
herd, created = Herd.objects.get_or_create(
|
|
||||||
herd=name,
|
|
||||||
defaults={"email": email}
|
|
||||||
)
|
|
||||||
|
|
||||||
if created:
|
|
||||||
self.logger.info('+ [h] %s <%s>' % (name, email))
|
|
||||||
|
|
||||||
herd.email = email
|
|
||||||
herd.save()
|
|
||||||
|
|
||||||
return herd
|
|
||||||
|
|
||||||
def store_maintainer(self, name, email):
|
|
||||||
if not name:
|
|
||||||
name = email
|
|
||||||
if not name:
|
|
||||||
name = '{nil}'
|
|
||||||
|
|
||||||
maintainer, created = Maintainer.objects.get_or_create(
|
|
||||||
email=email,
|
|
||||||
defaults={"name": name}
|
|
||||||
)
|
|
||||||
|
|
||||||
if created:
|
|
||||||
self.logger.info(
|
|
||||||
'+ [m] %s <%s>' % (name.encode('utf-8'), email)
|
|
||||||
)
|
|
||||||
return maintainer
|
|
||||||
|
|
||||||
def populate_herds_and_maintainers(self, herds_xml_path=None):
|
|
||||||
self.logger.info("Populating herds and maintainers from herds.xml...")
|
|
||||||
|
|
||||||
herds_xml_path = herds_xml_path or os.path.join(
|
|
||||||
portage.settings["PORTDIR"], "metadata", "herds.xml"
|
|
||||||
)
|
|
||||||
try:
|
|
||||||
self._herdstree = etree.parse(herds_xml_path)
|
|
||||||
except IOError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
for herd_node in self._herdstree.getiterator('herd'):
|
|
||||||
herd_name = herd_node.findtext('name')
|
|
||||||
herd_email = herd_node.findtext('email')
|
|
||||||
|
|
||||||
try:
|
|
||||||
herd = self.store_herd(herd_name, herd_email)
|
|
||||||
except ValidationError: # just skip invalid data
|
|
||||||
continue
|
|
||||||
|
|
||||||
herd.maintainers.clear() # clear previous data
|
|
||||||
|
|
||||||
for maintainer_node in herd_node:
|
|
||||||
if maintainer_node.tag == "maintainer":
|
|
||||||
maintainer_name = maintainer_node.findtext('name')
|
|
||||||
maintainer_email = maintainer_node.findtext('email')
|
|
||||||
|
|
||||||
try:
|
|
||||||
maintainer = self.store_maintainer(
|
|
||||||
maintainer_name, maintainer_email
|
|
||||||
)
|
|
||||||
except ValidationError:
|
|
||||||
self.logger.error(
|
|
||||||
self.style.ERROR("Bad maintainer: '%s' '%s'" % \
|
|
||||||
(maintainer_name, maintainer_email))
|
|
||||||
)
|
|
||||||
|
|
||||||
herd.maintainers.add(maintainer)
|
|
||||||
|
|
||||||
|
|
||||||
@commit_on_success
|
|
||||||
def scan_metadata(packages=None, category=None, logger=None, populate=False):
|
|
||||||
scan_handler = ScanMetadata(logger=logger)
|
|
||||||
|
|
||||||
if category:
|
|
||||||
packages = Package.objects.filter(category=category)
|
|
||||||
elif packages is None:
|
|
||||||
packages = Package.objects.all()
|
|
||||||
|
|
||||||
if populate:
|
|
||||||
scan_handler.populate_herds_and_maintainers()
|
|
||||||
|
|
||||||
for pkg in packages:
|
|
||||||
if isinstance(pkg, Package):
|
|
||||||
scan_handler.scan('%s/%s' % (pkg.category, pkg.name), pkg)
|
|
||||||
else:
|
|
||||||
scan_handler.scan(pkg)
|
|
@ -1,450 +0,0 @@
|
|||||||
import subprocess
|
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import portage
|
|
||||||
|
|
||||||
from gentoolkit.metadata import MetaData
|
|
||||||
|
|
||||||
from layman import Layman
|
|
||||||
|
|
||||||
from xml.etree.ElementTree import iterparse, ParseError
|
|
||||||
|
|
||||||
from django.db.transaction import commit_on_success
|
|
||||||
from django.db import models
|
|
||||||
from django.core.management.color import color_style
|
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
from euscan.version import get_version_type
|
|
||||||
|
|
||||||
from djeuscan.processing import FakeLogger
|
|
||||||
from djeuscan.models import Package, Version, VersionLog, Category, Overlay
|
|
||||||
|
|
||||||
|
|
||||||
class ScanPortage(object):
|
|
||||||
def __init__(self, logger=None, no_log=False, purge_packages=False,
|
|
||||||
purge_versions=False, upstream=False):
|
|
||||||
self.logger = logger or FakeLogger()
|
|
||||||
self.no_log = no_log
|
|
||||||
self.purge_packages = purge_packages
|
|
||||||
self.purge_versions = purge_versions
|
|
||||||
self.upstream = upstream
|
|
||||||
|
|
||||||
self.style = color_style()
|
|
||||||
|
|
||||||
self._cache = {'packages': {}, 'versions': {}}
|
|
||||||
self._overlays = None
|
|
||||||
self._packages_updated = set()
|
|
||||||
self._versions = set()
|
|
||||||
self._versions_seen = set()
|
|
||||||
|
|
||||||
def packages_updated(self):
|
|
||||||
return list(self._packages_updated)
|
|
||||||
|
|
||||||
def hash_package(self, category, name):
|
|
||||||
return '%s/%s' % (category, name)
|
|
||||||
|
|
||||||
def cache_store_package(self, package):
|
|
||||||
key = self.hash_package(package.category, package.name)
|
|
||||||
self._cache['packages'][key] = package
|
|
||||||
|
|
||||||
def cache_get_package(self, category, name):
|
|
||||||
return self._cache['packages'].get(
|
|
||||||
self.hash_package(category, name)
|
|
||||||
)
|
|
||||||
|
|
||||||
def hash_version(self, category, name, version, revision,
|
|
||||||
overlay):
|
|
||||||
key = '%s/%s-%s-r%s %s' % (category, name,
|
|
||||||
version, revision,
|
|
||||||
overlay)
|
|
||||||
return key
|
|
||||||
|
|
||||||
def cache_get_version(self, category, name, version, revision,
|
|
||||||
overlay):
|
|
||||||
key = self.hash_version(category, name, version, revision,
|
|
||||||
overlay)
|
|
||||||
return self._cache['versions'].get(key)
|
|
||||||
|
|
||||||
def cache_store_version(self, version):
|
|
||||||
key = self.hash_version(
|
|
||||||
version.package.category, version.package.name, version.version,
|
|
||||||
version.revision, version.overlay
|
|
||||||
)
|
|
||||||
self._cache['versions'][key] = version
|
|
||||||
self._versions.add(version)
|
|
||||||
|
|
||||||
def scan_gentoopm(self, query, category=None):
|
|
||||||
import gentoopm
|
|
||||||
|
|
||||||
pm = gentoopm.get_package_manager()
|
|
||||||
|
|
||||||
if category:
|
|
||||||
packages = pm.stack.filter(key_category=category)
|
|
||||||
elif query:
|
|
||||||
packages = pm.stack.filter(query)
|
|
||||||
else:
|
|
||||||
packages = pm.stack
|
|
||||||
|
|
||||||
package = {}
|
|
||||||
package_name = None
|
|
||||||
|
|
||||||
for p in packages:
|
|
||||||
pkg = p.key.package
|
|
||||||
|
|
||||||
if pkg != package_name:
|
|
||||||
if package_name:
|
|
||||||
yield package
|
|
||||||
package_name = pkg
|
|
||||||
package['package'] = p.key.package
|
|
||||||
package['category'] = p.key.category
|
|
||||||
package['homepage'] = ' '.join(p.homepages)
|
|
||||||
package['description'] = p.description
|
|
||||||
package['versions'] = []
|
|
||||||
package['versions'].append(
|
|
||||||
(p._cpv, p.slot, p.repository or 'gentoo')
|
|
||||||
)
|
|
||||||
|
|
||||||
if package_name:
|
|
||||||
yield package
|
|
||||||
|
|
||||||
def scan_eix_xml(self, query, category=None):
|
|
||||||
cmd = ['eix', '--xml']
|
|
||||||
env = os.environ
|
|
||||||
env['XML_OVERLAY'] = 'true'
|
|
||||||
if query:
|
|
||||||
cmd.extend(['--exact', query])
|
|
||||||
if category:
|
|
||||||
cmd.extend(['-C', category])
|
|
||||||
|
|
||||||
sub = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE)
|
|
||||||
output = sub.stdout
|
|
||||||
|
|
||||||
try:
|
|
||||||
parser = iterparse(output, ["start", "end"])
|
|
||||||
parser.next() # read root tag just for testing output
|
|
||||||
except ParseError:
|
|
||||||
if query:
|
|
||||||
msg = "Unknown package '%s'" % query
|
|
||||||
else:
|
|
||||||
msg = "No packages."
|
|
||||||
self.logger.error(self.style.ERROR(msg))
|
|
||||||
return
|
|
||||||
|
|
||||||
package = {'versions': []}
|
|
||||||
category = ""
|
|
||||||
|
|
||||||
for event, elem in parser:
|
|
||||||
if event == "start": # on tag opening
|
|
||||||
if elem.tag == "category":
|
|
||||||
category = elem.attrib["name"]
|
|
||||||
elif elem.tag == "package":
|
|
||||||
package["package"] = elem.attrib["name"]
|
|
||||||
package["category"] = category
|
|
||||||
elif elem.tag in ["description", "homepage"]:
|
|
||||||
package[elem.tag] = elem.text or ""
|
|
||||||
elif elem.tag == "version":
|
|
||||||
# append version data to versions
|
|
||||||
cpv = "%s/%s-%s" % (
|
|
||||||
package["category"],
|
|
||||||
package["package"],
|
|
||||||
elem.attrib["id"]
|
|
||||||
)
|
|
||||||
slot = elem.attrib.get("slot", "0")
|
|
||||||
overlay = elem.attrib.get("repository", "gentoo")
|
|
||||||
overlay_path = elem.attrib.get("overlay", None)
|
|
||||||
package["versions"].append(
|
|
||||||
(cpv, slot, overlay, overlay_path)
|
|
||||||
)
|
|
||||||
|
|
||||||
elif event == "end": # on tag closing
|
|
||||||
if elem.tag == "package":
|
|
||||||
# clean old data
|
|
||||||
yield package
|
|
||||||
package = {"versions": []}
|
|
||||||
|
|
||||||
if elem.tag == "category":
|
|
||||||
# clean old data
|
|
||||||
category = ""
|
|
||||||
elem.clear()
|
|
||||||
|
|
||||||
def scan(self, query=None, category=None):
|
|
||||||
for data in self.scan_eix_xml(query, category):
|
|
||||||
#for data in self.scan_gentoopm(query, category):
|
|
||||||
cat, pkg = data['category'], data['package']
|
|
||||||
package = self.store_package(
|
|
||||||
cat, pkg, data['homepage'], data['description']
|
|
||||||
)
|
|
||||||
|
|
||||||
new_version = False
|
|
||||||
for cpv, slot, overlay, overlay_path in data['versions']:
|
|
||||||
obj, created = self.store_version(
|
|
||||||
package, cpv, slot, overlay, overlay_path
|
|
||||||
)
|
|
||||||
self._versions_seen.add(obj)
|
|
||||||
new_version = created or new_version
|
|
||||||
|
|
||||||
# If the package has at least one new version scan upstream for it
|
|
||||||
if new_version:
|
|
||||||
self._packages_updated.add(package)
|
|
||||||
|
|
||||||
self.purge_old_versions()
|
|
||||||
self.purge_old_packages()
|
|
||||||
|
|
||||||
def store_package(self, cat, pkg, homepage, description):
|
|
||||||
created = False
|
|
||||||
obj = self.cache_get_package(cat, pkg)
|
|
||||||
|
|
||||||
if not obj:
|
|
||||||
obj, created = Package.objects.get_or_create(
|
|
||||||
category=cat,
|
|
||||||
name=pkg,
|
|
||||||
defaults={"homepage": homepage, "description": description},
|
|
||||||
)
|
|
||||||
self.cache_store_package(obj)
|
|
||||||
|
|
||||||
if created:
|
|
||||||
self.logger.info('+ [p] %s/%s' % (cat, pkg))
|
|
||||||
|
|
||||||
return obj
|
|
||||||
|
|
||||||
def store_version(self, package, cpv, slot, overlay, overlay_path):
|
|
||||||
cat, pkg, ver, rev = portage.catpkgsplit(cpv)
|
|
||||||
if not overlay:
|
|
||||||
overlay = 'gentoo'
|
|
||||||
|
|
||||||
created = False
|
|
||||||
obj = self.cache_get_version(
|
|
||||||
package.category, package.name, ver, rev, overlay
|
|
||||||
)
|
|
||||||
|
|
||||||
overlay_path = overlay_path or portage.settings["PORTDIR"]
|
|
||||||
package_path = os.path.join(overlay_path, package.category, package.name)
|
|
||||||
ebuild_path = os.path.join(package_path, "%s.ebuild" % cpv.split("/")[-1])
|
|
||||||
metadata_path = os.path.join(package_path, "metadata.xml")
|
|
||||||
if not os.path.exists(metadata_path):
|
|
||||||
metadata_path = None
|
|
||||||
|
|
||||||
if not obj:
|
|
||||||
obj, created = Version.objects.get_or_create(
|
|
||||||
package=package,
|
|
||||||
revision=rev,
|
|
||||||
version=ver,
|
|
||||||
overlay=overlay,
|
|
||||||
defaults={
|
|
||||||
"slot": slot,
|
|
||||||
"packaged": True,
|
|
||||||
"vtype": get_version_type(ver),
|
|
||||||
"confidence": 100,
|
|
||||||
"handler": "portage",
|
|
||||||
"ebuild_path": ebuild_path,
|
|
||||||
"metadata_path": metadata_path,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
if not created: # Created objects have defaults values
|
|
||||||
if obj.slot != slot or obj.package != True:
|
|
||||||
obj.slot = slot
|
|
||||||
obj.packaged = True
|
|
||||||
obj.save()
|
|
||||||
|
|
||||||
if created:
|
|
||||||
self.cache_store_version(obj)
|
|
||||||
|
|
||||||
# nothing to do (note: it can't be an upstream version because
|
|
||||||
# overlay can't be empty here)
|
|
||||||
if not created:
|
|
||||||
return obj, created
|
|
||||||
|
|
||||||
# New version created
|
|
||||||
self.logger.info('+ [v] %s' % (obj))
|
|
||||||
|
|
||||||
if overlay == 'gentoo':
|
|
||||||
package.n_packaged += 1
|
|
||||||
else:
|
|
||||||
package.n_overlay += 1
|
|
||||||
package.n_versions += 1
|
|
||||||
package.save()
|
|
||||||
|
|
||||||
if not self.no_log:
|
|
||||||
VersionLog.objects.create(
|
|
||||||
package=obj.package,
|
|
||||||
action=VersionLog.VERSION_ADDED,
|
|
||||||
slot=obj.slot,
|
|
||||||
revision=obj.revision,
|
|
||||||
version=obj.version,
|
|
||||||
overlay=obj.overlay,
|
|
||||||
vtype=obj.vtype,
|
|
||||||
)
|
|
||||||
|
|
||||||
return obj, created
|
|
||||||
|
|
||||||
def purge_old_packages(self):
|
|
||||||
if not self.purge_packages:
|
|
||||||
return
|
|
||||||
|
|
||||||
packages = Package.objects.filter(n_packaged=0, n_overlay=0)
|
|
||||||
|
|
||||||
for package in packages:
|
|
||||||
self.logger.info('- [p] %s' % (package))
|
|
||||||
package.delete()
|
|
||||||
|
|
||||||
def version_hack(self, version):
|
|
||||||
try:
|
|
||||||
if version.package.last_version_gentoo:
|
|
||||||
version.package.last_version_gentoo.pk
|
|
||||||
if version.package.last_version_overlay:
|
|
||||||
version.package.last_version_overlay.pk
|
|
||||||
if version.package.last_version_upstream:
|
|
||||||
version.package.last_version_upstream.pk
|
|
||||||
except Version.DoesNotExist:
|
|
||||||
version.package.last_version_gentoo = None
|
|
||||||
version.package.last_version_overlay = None
|
|
||||||
version.package.last_version_upstream = None
|
|
||||||
|
|
||||||
def purge_old_versions(self):
|
|
||||||
if not self.purge_versions:
|
|
||||||
return
|
|
||||||
|
|
||||||
versions = self._versions.difference(self._versions_seen)
|
|
||||||
|
|
||||||
for version in versions:
|
|
||||||
self.logger.info('- [v] %s' % (version))
|
|
||||||
|
|
||||||
if version.packaged == False:
|
|
||||||
continue # Not our job
|
|
||||||
|
|
||||||
# Fix last_version_ stuff that is sometime broken
|
|
||||||
self.version_hack(version)
|
|
||||||
|
|
||||||
if version.overlay == 'gentoo':
|
|
||||||
version.package.n_packaged -= 1
|
|
||||||
else:
|
|
||||||
version.package.n_overlay -= 1
|
|
||||||
version.package.n_versions -= 1
|
|
||||||
version.package.save()
|
|
||||||
|
|
||||||
if self.no_log:
|
|
||||||
continue
|
|
||||||
|
|
||||||
VersionLog.objects.create(
|
|
||||||
package=version.package,
|
|
||||||
action=VersionLog.VERSION_REMOVED,
|
|
||||||
slot=version.slot,
|
|
||||||
revision=version.revision,
|
|
||||||
version=version.version,
|
|
||||||
overlay=version.overlay,
|
|
||||||
vtype=version.vtype,
|
|
||||||
)
|
|
||||||
# remove from last version ?
|
|
||||||
version.delete()
|
|
||||||
|
|
||||||
def prefetch(self, packages, category):
|
|
||||||
self.logger.info('Prefetching current objects...')
|
|
||||||
|
|
||||||
ppackages = Package.objects.all()
|
|
||||||
pversions = Version.objects.filter(packaged=True)\
|
|
||||||
.select_related('package').all()
|
|
||||||
|
|
||||||
if category:
|
|
||||||
ppackages = ppackages.filter(category=category)
|
|
||||||
pversions = pversions.filter(package__category=category)
|
|
||||||
if packages:
|
|
||||||
ids = [package.id for package in packages]
|
|
||||||
ppackages = ppackages.filter(pk__in=ids)
|
|
||||||
pversions = pversions.filter(package__pk__in=ids)
|
|
||||||
|
|
||||||
for package in ppackages:
|
|
||||||
self.cache_store_package(package)
|
|
||||||
for version in pversions:
|
|
||||||
self.cache_store_version(version)
|
|
||||||
|
|
||||||
self.logger.info('done')
|
|
||||||
|
|
||||||
|
|
||||||
def populate_categories(logger):
|
|
||||||
portdir = portage.settings["PORTDIR"]
|
|
||||||
for cat in portage.settings.categories:
|
|
||||||
try:
|
|
||||||
meta = MetaData(os.path.join(portdir, cat, "metadata.xml"))
|
|
||||||
desc = meta.descriptions()[0]
|
|
||||||
except (IOError, IndexError):
|
|
||||||
desc = ""
|
|
||||||
obj, created = Category.objects.get_or_create(name=cat)
|
|
||||||
obj.description = desc.strip()
|
|
||||||
obj.save()
|
|
||||||
if created:
|
|
||||||
logger.info("+ [c] %s", cat)
|
|
||||||
|
|
||||||
|
|
||||||
def populate_overlays(logger):
|
|
||||||
l = Layman(stderr=sys.__stderr__, stdin=sys.__stdin__,
|
|
||||||
stdout=sys.__stdout__, config=settings.LAYMAN_CONFIG, root="/")
|
|
||||||
installed_overlays = l.get_installed()
|
|
||||||
info = l.get_all_info(installed_overlays)
|
|
||||||
for overlay in installed_overlays:
|
|
||||||
if not overlay:
|
|
||||||
continue
|
|
||||||
obj, created = Overlay.objects.get_or_create(name=overlay)
|
|
||||||
if overlay in info and type(info[overlay]) == dict:
|
|
||||||
obj.description = info[overlay]["description"]
|
|
||||||
obj.homepage = info[overlay]["homepage"]
|
|
||||||
obj.overlay_path = os.path.join(l.config['storage'], overlay)
|
|
||||||
obj.save()
|
|
||||||
if created:
|
|
||||||
logger.info("+ [o] %s", overlay)
|
|
||||||
|
|
||||||
|
|
||||||
@commit_on_success
|
|
||||||
def scan_portage(packages=None, category=None, no_log=False, upstream=False,
|
|
||||||
purge_packages=False, purge_versions=False, logger=None):
|
|
||||||
|
|
||||||
logger = logger or FakeLogger()
|
|
||||||
|
|
||||||
scan_handler = ScanPortage(
|
|
||||||
logger=logger,
|
|
||||||
no_log=no_log,
|
|
||||||
purge_packages=purge_packages,
|
|
||||||
purge_versions=purge_versions
|
|
||||||
)
|
|
||||||
|
|
||||||
logger.info('Scanning portage tree...')
|
|
||||||
|
|
||||||
if not packages:
|
|
||||||
qs = Package.objects.all()
|
|
||||||
if category:
|
|
||||||
qs = qs.filter(category=category)
|
|
||||||
prefetch_packages = qs
|
|
||||||
else:
|
|
||||||
results = []
|
|
||||||
for package in packages:
|
|
||||||
if isinstance(package, Package):
|
|
||||||
results.append(package)
|
|
||||||
else:
|
|
||||||
if '/' in package:
|
|
||||||
cat, pkg = portage.catsplit(package)
|
|
||||||
qs = Package.objects.filter(category=cat, name=pkg)
|
|
||||||
else:
|
|
||||||
qs = Package.objects.filter(name=package)
|
|
||||||
for package in qs:
|
|
||||||
results.append(package)
|
|
||||||
prefetch_packages = results
|
|
||||||
|
|
||||||
scan_handler.prefetch(prefetch_packages, category)
|
|
||||||
|
|
||||||
if not packages and category:
|
|
||||||
scan_handler.scan(category=category)
|
|
||||||
elif not packages:
|
|
||||||
scan_handler.scan()
|
|
||||||
else:
|
|
||||||
for pkg in packages:
|
|
||||||
if isinstance(pkg, Package):
|
|
||||||
scan_handler.scan('%s/%s' % (pkg.category, pkg.name))
|
|
||||||
else:
|
|
||||||
scan_handler.scan(pkg)
|
|
||||||
|
|
||||||
populate_categories(logger)
|
|
||||||
populate_overlays(logger)
|
|
||||||
|
|
||||||
logger.info('Done.')
|
|
||||||
return scan_handler.packages_updated()
|
|
@ -1,176 +0,0 @@
|
|||||||
import portage
|
|
||||||
|
|
||||||
from django.utils import timezone
|
|
||||||
from django.db.transaction import commit_on_success
|
|
||||||
|
|
||||||
from euscan import CONFIG, output
|
|
||||||
from euscan.scan import scan_upstream as euscan_scan_upstream
|
|
||||||
|
|
||||||
from djeuscan.processing import FakeLogger
|
|
||||||
from djeuscan.models import Package, Version, EuscanResult, VersionLog
|
|
||||||
|
|
||||||
|
|
||||||
class ScanUpstream(object):
|
|
||||||
def __init__(self, logger=None, purge_versions=False):
|
|
||||||
self.logger = logger or FakeLogger()
|
|
||||||
self.purge_versions = purge_versions
|
|
||||||
self._versions = set()
|
|
||||||
self._versions_seen = set()
|
|
||||||
|
|
||||||
def scan(self, package):
|
|
||||||
CONFIG["format"] = "dict"
|
|
||||||
output.clean()
|
|
||||||
output.set_query(package)
|
|
||||||
|
|
||||||
euscan_scan_upstream(package)
|
|
||||||
|
|
||||||
out = output.get_formatted_output()
|
|
||||||
out_json = output.get_formatted_output("json")
|
|
||||||
|
|
||||||
try:
|
|
||||||
cpv = out[package]["metadata"]["cpv"]
|
|
||||||
scan_time = out[package]["metadata"]["scan_time"]
|
|
||||||
ebuild = out[package]["metadata"]["ebuild"]
|
|
||||||
except KeyError:
|
|
||||||
self.logger.error(
|
|
||||||
"Error while scanning upstream for package %s!",
|
|
||||||
package
|
|
||||||
)
|
|
||||||
self.logger.debug(
|
|
||||||
"Error %s",
|
|
||||||
out_json
|
|
||||||
)
|
|
||||||
return {}
|
|
||||||
|
|
||||||
obj = self.store_package(cpv)
|
|
||||||
for res in out[package]["result"]:
|
|
||||||
if not res['version']:
|
|
||||||
continue
|
|
||||||
self.store_version(
|
|
||||||
obj,
|
|
||||||
res["version"],
|
|
||||||
" ".join(res["urls"]),
|
|
||||||
res["type"],
|
|
||||||
res["handler"],
|
|
||||||
res["confidence"],
|
|
||||||
)
|
|
||||||
|
|
||||||
self.store_result(obj, out_json, scan_time, ebuild)
|
|
||||||
|
|
||||||
def store_result(self, package, formatted_log, scan_time, ebuild):
|
|
||||||
# Remove previous logs
|
|
||||||
EuscanResult.objects.filter(package=package).delete()
|
|
||||||
|
|
||||||
obj = EuscanResult()
|
|
||||||
obj.package = package
|
|
||||||
obj.result = formatted_log
|
|
||||||
obj.datetime = timezone.now()
|
|
||||||
obj.scan_time = scan_time
|
|
||||||
obj.ebuild = ebuild
|
|
||||||
obj.save()
|
|
||||||
|
|
||||||
def store_package(self, cpv):
|
|
||||||
cat, pkg, ver, rev = portage.catpkgsplit(cpv)
|
|
||||||
|
|
||||||
obj, created = Package.objects.get_or_create(category=cat, name=pkg)
|
|
||||||
|
|
||||||
if created:
|
|
||||||
self.logger.info('+ [p] %s/%s' % (cat, pkg))
|
|
||||||
|
|
||||||
versions = Version.objects.filter(
|
|
||||||
package=obj, packaged=False
|
|
||||||
)
|
|
||||||
for version in versions:
|
|
||||||
self._versions.add(version)
|
|
||||||
|
|
||||||
return obj
|
|
||||||
|
|
||||||
def store_version(self, package, ver, url, version_type, handler,
|
|
||||||
confidence):
|
|
||||||
obj, created = Version.objects.get_or_create(
|
|
||||||
package=package,
|
|
||||||
revision='r0',
|
|
||||||
version=ver,
|
|
||||||
overlay='',
|
|
||||||
defaults={"slot": '', "urls": url, "packaged": False,
|
|
||||||
"vtype": version_type, "handler": handler,
|
|
||||||
"confidence": confidence}
|
|
||||||
)
|
|
||||||
|
|
||||||
if not created:
|
|
||||||
obj.slot = ''
|
|
||||||
obj.urls = url
|
|
||||||
obj.packaged = False
|
|
||||||
obj.save()
|
|
||||||
|
|
||||||
self._versions_seen.add(obj)
|
|
||||||
|
|
||||||
# If it's not a new version, just update the object and continue
|
|
||||||
if not created:
|
|
||||||
return
|
|
||||||
|
|
||||||
self.logger.info('+ [u] %s %s' % (obj, url))
|
|
||||||
|
|
||||||
VersionLog.objects.create(
|
|
||||||
package=package,
|
|
||||||
action=VersionLog.VERSION_ADDED,
|
|
||||||
slot='',
|
|
||||||
revision='r0',
|
|
||||||
version=ver,
|
|
||||||
overlay='',
|
|
||||||
vtype=version_type,
|
|
||||||
)
|
|
||||||
|
|
||||||
package.n_versions += 1
|
|
||||||
package.save()
|
|
||||||
|
|
||||||
def purge_old_versions(self):
|
|
||||||
if not self.purge_versions:
|
|
||||||
return
|
|
||||||
|
|
||||||
versions = self._versions.difference(self._versions_seen)
|
|
||||||
for version in versions:
|
|
||||||
if version.packaged == True:
|
|
||||||
continue # Not our job
|
|
||||||
VersionLog.objects.create(
|
|
||||||
package=version.package,
|
|
||||||
action=VersionLog.VERSION_REMOVED,
|
|
||||||
slot=version.slot,
|
|
||||||
revision=version.revision,
|
|
||||||
version=version.version,
|
|
||||||
overlay=version.overlay,
|
|
||||||
vtype=version.vtype,
|
|
||||||
)
|
|
||||||
|
|
||||||
version.package.n_versions -= 1
|
|
||||||
version.package.save()
|
|
||||||
|
|
||||||
self.logger.info('- [u] %s %s' % (version, version.urls))
|
|
||||||
|
|
||||||
version.delete()
|
|
||||||
|
|
||||||
|
|
||||||
@commit_on_success
|
|
||||||
def scan_upstream(packages=None, purge_versions=False,
|
|
||||||
logger=None):
|
|
||||||
logger = logger or FakeLogger()
|
|
||||||
|
|
||||||
scan_handler = ScanUpstream(logger=logger, purge_versions=purge_versions)
|
|
||||||
|
|
||||||
logger.info('Scanning upstream...')
|
|
||||||
|
|
||||||
if not packages:
|
|
||||||
packages = Package.objects.all()
|
|
||||||
|
|
||||||
for pkg in packages:
|
|
||||||
try:
|
|
||||||
package = '%s/%s' % (pkg.category, pkg.name)
|
|
||||||
except AttributeError:
|
|
||||||
package = pkg
|
|
||||||
|
|
||||||
logger.info('Scanning %s' % package)
|
|
||||||
scan_handler.scan(package)
|
|
||||||
|
|
||||||
scan_handler.purge_old_versions()
|
|
||||||
|
|
||||||
logger.info('Done.')
|
|
@ -1,390 +0,0 @@
|
|||||||
"""
|
|
||||||
Celery tasks for djeuscan
|
|
||||||
"""
|
|
||||||
|
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from celery.task import task, group
|
|
||||||
|
|
||||||
#import portage
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.template.loader import render_to_string
|
|
||||||
from django.core.mail import send_mail
|
|
||||||
from django.db.models import Q
|
|
||||||
|
|
||||||
from euscan.version import gentoo_unstable
|
|
||||||
|
|
||||||
from djeuscan.models import Package, RefreshPackageQuery, VersionLog
|
|
||||||
from djeuscan.processing import scan, misc
|
|
||||||
|
|
||||||
from euscan_accounts.helpers import get_account_versionlogs, get_user_fav_infos
|
|
||||||
from euscan_accounts.models import UserProfile
|
|
||||||
|
|
||||||
|
|
||||||
class TaskFailedException(Exception):
|
|
||||||
"""
|
|
||||||
Exception for failed tasks
|
|
||||||
"""
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def group_one(task, seq, *args, **kwargs):
|
|
||||||
"""
|
|
||||||
Create a group of tasks, each task handle one element of seq
|
|
||||||
"""
|
|
||||||
tasks = []
|
|
||||||
|
|
||||||
if "attr_name" in kwargs:
|
|
||||||
attr_name = kwargs['attr_name']
|
|
||||||
del kwargs["attr_name"]
|
|
||||||
else:
|
|
||||||
attr_name = None
|
|
||||||
|
|
||||||
for elem in seq:
|
|
||||||
if attr_name:
|
|
||||||
kwargs[attr_name] = elem
|
|
||||||
tasks.append(task.subtask(args=list(args), kwargs=dict(kwargs),
|
|
||||||
immutable=True))
|
|
||||||
else:
|
|
||||||
tasks.append(task.subtask(args=[elem] + list(args),
|
|
||||||
kwargs=dict(kwargs), immutable=True))
|
|
||||||
|
|
||||||
return group(tasks)
|
|
||||||
|
|
||||||
|
|
||||||
def group_chunks(task, seq, n, *args, **kwargs):
|
|
||||||
"""
|
|
||||||
Creates a group of tasks, each subtask has <n> elements to handle
|
|
||||||
"""
|
|
||||||
tasks = []
|
|
||||||
for i in xrange(0, len(seq), n):
|
|
||||||
tasks.append(
|
|
||||||
task.subtask(args=[seq[i:i + n]] + list(args), kwargs=kwargs,
|
|
||||||
immutable=True)
|
|
||||||
)
|
|
||||||
return group(tasks)
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def regen_rrds():
|
|
||||||
"""
|
|
||||||
Regenerate RRDs
|
|
||||||
"""
|
|
||||||
misc.regen_rrds()
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def update_counters(fast=False):
|
|
||||||
"""
|
|
||||||
Updates counters
|
|
||||||
"""
|
|
||||||
logger = update_counters.get_logger()
|
|
||||||
logger.info("Updating counters (fast=%s)...", fast)
|
|
||||||
misc.update_counters(fast=fast)
|
|
||||||
logger.info("Done")
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def scan_metadata(packages=[], category=None, populate=False):
|
|
||||||
"""
|
|
||||||
Scans metadata for the given set of packages
|
|
||||||
"""
|
|
||||||
logger = scan_metadata.get_logger()
|
|
||||||
|
|
||||||
if packages:
|
|
||||||
logger.info("Starting metadata scan for %d packages...",
|
|
||||||
len(packages))
|
|
||||||
elif category:
|
|
||||||
logger.info("Starting metadata scan for %s...",
|
|
||||||
category)
|
|
||||||
else:
|
|
||||||
logger.info("Starting metadata scan...")
|
|
||||||
|
|
||||||
scan.scan_metadata(
|
|
||||||
packages=packages,
|
|
||||||
category=category,
|
|
||||||
logger=logger,
|
|
||||||
populate=populate,
|
|
||||||
)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def scan_portage(packages=None, category=None,
|
|
||||||
no_log=False, purge_packages=False,
|
|
||||||
purge_versions=False):
|
|
||||||
"""
|
|
||||||
Scans portage for the given set of packages
|
|
||||||
"""
|
|
||||||
logger = scan_portage.get_logger()
|
|
||||||
|
|
||||||
if packages:
|
|
||||||
logger.info("Starting portage scan for %d packages...",
|
|
||||||
len(packages))
|
|
||||||
elif category:
|
|
||||||
logger.info("Starting portage scan for %s...",
|
|
||||||
category)
|
|
||||||
else:
|
|
||||||
logger.info("Starting portage scan...")
|
|
||||||
|
|
||||||
return scan.scan_portage(
|
|
||||||
packages=packages,
|
|
||||||
category=category,
|
|
||||||
no_log=no_log,
|
|
||||||
purge_packages=purge_packages,
|
|
||||||
purge_versions=purge_versions,
|
|
||||||
logger=logger,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def scan_upstream(packages=[], purge_versions=False):
|
|
||||||
"""
|
|
||||||
Scans upstream for the given set of packages
|
|
||||||
"""
|
|
||||||
logger = scan_upstream.get_logger()
|
|
||||||
|
|
||||||
if packages:
|
|
||||||
logger.info("Starting upstream scan subtask for %d packages...",
|
|
||||||
len(packages))
|
|
||||||
else:
|
|
||||||
logger.info("Starting upstream scan...")
|
|
||||||
|
|
||||||
scan.scan_upstream(
|
|
||||||
packages=packages,
|
|
||||||
purge_versions=purge_versions,
|
|
||||||
logger=logger,
|
|
||||||
)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def update_portage_trees():
|
|
||||||
"""
|
|
||||||
Update portage tree
|
|
||||||
"""
|
|
||||||
logger = update_portage_trees.get_logger()
|
|
||||||
misc.update_portage_trees(logger=logger)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def update_portage(packages=None):
|
|
||||||
#categories = portage.settings.categories
|
|
||||||
|
|
||||||
# Workaround for celery bug when chaining groups
|
|
||||||
update_portage_trees()
|
|
||||||
updated_packages = scan_portage(
|
|
||||||
packages=None,
|
|
||||||
purge_packages=True,
|
|
||||||
purge_versions=True,
|
|
||||||
)
|
|
||||||
scan_metadata(packages=None, populate=True)
|
|
||||||
|
|
||||||
if not updated_packages:
|
|
||||||
# Simple/Fast path
|
|
||||||
update_counters(fast=False)
|
|
||||||
return
|
|
||||||
|
|
||||||
(
|
|
||||||
group_chunks(scan_upstream, updated_packages,
|
|
||||||
settings.TASKS_UPSTREAM_GROUPS,
|
|
||||||
purge_versions=True) |
|
|
||||||
update_counters.si(fast=False)
|
|
||||||
)()
|
|
||||||
|
|
||||||
""" Currently broken
|
|
||||||
update_portage_trees()
|
|
||||||
scan_metadata(packages=None, populate=True)
|
|
||||||
(
|
|
||||||
group_one(scan_portage, categories,
|
|
||||||
attr_name="category", purge_packages=True,
|
|
||||||
purge_versions=True) |
|
|
||||||
group_one(scan_metadata, categories,
|
|
||||||
attr_name="category") |
|
|
||||||
update_counters.si(fast=True)
|
|
||||||
)()
|
|
||||||
"""
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def update_upstream():
|
|
||||||
if settings.TASKS_UPSTREAM_GROUPS >= 1:
|
|
||||||
packages = Package.objects.all().order_by('pk') # .order_by('?') ?
|
|
||||||
|
|
||||||
scan_upstream_sub = group_chunks(scan_upstream, packages,
|
|
||||||
settings.TASKS_UPSTREAM_GROUPS,
|
|
||||||
purge_versions=True)
|
|
||||||
else:
|
|
||||||
scan_upstream_sub = scan_upstream.si(purge_versions=True)
|
|
||||||
|
|
||||||
(
|
|
||||||
scan_upstream_sub |
|
|
||||||
update_counters.si(fast=False) |
|
|
||||||
send_update_email.si()
|
|
||||||
)()
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def scan_package(package):
|
|
||||||
logger = scan_package.get_logger()
|
|
||||||
logger.info("Scanning package %s", package)
|
|
||||||
scan_portage([package], purge_packages=True, purge_versions=True)
|
|
||||||
scan_metadata([package])
|
|
||||||
scan_upstream([package], purge_versions=True)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task(rate_limit="1/m")
|
|
||||||
def scan_package_user(package):
|
|
||||||
scan_package(package)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task(rate_limit="1/m")
|
|
||||||
def consume_refresh_queue(locked=False):
|
|
||||||
"""
|
|
||||||
Satisfies user requests for package refreshing, runs every minute
|
|
||||||
"""
|
|
||||||
logger = consume_refresh_queue.get_logger()
|
|
||||||
logger.info('Consuming package refresh request queue...')
|
|
||||||
|
|
||||||
try:
|
|
||||||
query = RefreshPackageQuery.objects.all().order_by('-priority')[0]
|
|
||||||
pkg = query.package
|
|
||||||
query.delete()
|
|
||||||
scan_package_user.delay(pkg)
|
|
||||||
logger.info('Selected: %s' % pkg)
|
|
||||||
except IndexError:
|
|
||||||
return
|
|
||||||
|
|
||||||
if RefreshPackageQuery.objects.count():
|
|
||||||
logger.info('Restarting myself in 60s')
|
|
||||||
consume_refresh_queue.apply_async(
|
|
||||||
kwargs={'locked': True}, countdown=60
|
|
||||||
)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task(max_retries=10, default_retry_delay=10 * 60)
|
|
||||||
def send_user_email(address, subject, text):
|
|
||||||
try:
|
|
||||||
send_mail(
|
|
||||||
subject, text, settings.DEFAULT_FROM_EMAIL, [address],
|
|
||||||
fail_silently=False
|
|
||||||
)
|
|
||||||
except Exception, exc:
|
|
||||||
raise send_user_email.retry(exc=exc)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def process_emails(profiles, only_if_vlogs=False):
|
|
||||||
for profile in profiles:
|
|
||||||
now = datetime.now()
|
|
||||||
user = profile.user
|
|
||||||
|
|
||||||
vlogs = get_account_versionlogs(profile)
|
|
||||||
vlogs = vlogs.filter(
|
|
||||||
datetime__gt=profile.last_email,
|
|
||||||
overlay="", # only upstream versions
|
|
||||||
action=VersionLog.VERSION_ADDED, # only adds
|
|
||||||
)
|
|
||||||
if profile.email_ignore_pre:
|
|
||||||
vlogs = vlogs.exclude(vtype__in=gentoo_unstable)
|
|
||||||
if profile.email_ignore_pre_if_stable:
|
|
||||||
vlogs = vlogs.exclude(
|
|
||||||
~Q(package__last_version_gentoo__vtype__in=gentoo_unstable),
|
|
||||||
vtype__in=gentoo_unstable
|
|
||||||
)
|
|
||||||
|
|
||||||
if only_if_vlogs and not vlogs.count():
|
|
||||||
continue
|
|
||||||
|
|
||||||
vlogs = vlogs.order_by("-datetime")
|
|
||||||
|
|
||||||
infos = get_user_fav_infos(user)
|
|
||||||
infos["user"] = user
|
|
||||||
infos["vlogs"] = vlogs
|
|
||||||
|
|
||||||
mail_text = render_to_string(
|
|
||||||
"euscan/accounts/euscan_email.txt",
|
|
||||||
infos
|
|
||||||
)
|
|
||||||
|
|
||||||
send_user_email.delay(
|
|
||||||
user.email, "euscan updates - %s" % str(now.date()), mail_text
|
|
||||||
)
|
|
||||||
|
|
||||||
profile.last_email = now
|
|
||||||
profile.save(force_update=True)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def send_update_email():
|
|
||||||
profiles = UserProfile.objects.filter(
|
|
||||||
email_every=UserProfile.EMAIL_SCAN,
|
|
||||||
email_activated=True
|
|
||||||
)
|
|
||||||
group_chunks(
|
|
||||||
process_emails,
|
|
||||||
profiles,
|
|
||||||
settings.TASKS_EMAIL_GROUPS,
|
|
||||||
only_if_vlogs=True
|
|
||||||
)()
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def send_weekly_email():
|
|
||||||
profiles = UserProfile.objects.filter(
|
|
||||||
email_every=UserProfile.EMAIL_WEEKLY,
|
|
||||||
email_activated=True
|
|
||||||
)
|
|
||||||
group_chunks(process_emails, profiles, settings.TASKS_EMAIL_GROUPS)()
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def send_monthly_email():
|
|
||||||
profiles = UserProfile.objects.filter(
|
|
||||||
email_every=UserProfile.EMAIL_MONTHLY,
|
|
||||||
email_activated=True
|
|
||||||
)
|
|
||||||
group_chunks(process_emails, profiles, settings.TASKS_EMAIL_GROUPS)()
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def collect_stabilization_candidates():
|
|
||||||
"""
|
|
||||||
This task collects the packages that are stabilization candidates
|
|
||||||
"""
|
|
||||||
logger = collect_stabilization_candidates.get_logger()
|
|
||||||
misc.stabilization_candidates(
|
|
||||||
days_to_stabilization=settings.DAYS_TO_STABILIZATION,
|
|
||||||
logger=logger
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
admin_tasks = [
|
|
||||||
regen_rrds,
|
|
||||||
update_counters,
|
|
||||||
scan_metadata,
|
|
||||||
scan_portage,
|
|
||||||
scan_upstream,
|
|
||||||
update_portage_trees,
|
|
||||||
update_portage,
|
|
||||||
update_upstream,
|
|
||||||
scan_package,
|
|
||||||
send_update_email,
|
|
||||||
send_weekly_email,
|
|
||||||
send_monthly_email,
|
|
||||||
collect_stabilization_candidates,
|
|
||||||
]
|
|
@ -1,126 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
|
|
||||||
{% load url from future %}
|
|
||||||
{% load timedelta %}
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<title>{% block title %}euscan{% endblock %}</title>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
|
||||||
{% block meta %}
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="Global log" href="{% url "global_feed" %}" />
|
|
||||||
{% endblock %}
|
|
||||||
{% block css %}
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/bootstrap.min.css" media="screen" title="Normal" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/style.css" media="screen" title="Normal" />
|
|
||||||
{% endblock %}
|
|
||||||
{% block javascript %}
|
|
||||||
{% endblock %}
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="header">
|
|
||||||
<a href="http://www.gentoo.org">
|
|
||||||
<img id="logo" src="{{ STATIC_URL }}img/gentoo_org.png" alt="gentoo" />
|
|
||||||
</a>
|
|
||||||
{% block header %}<h1>Ebuild Upstream Scanner (euscan)</h1>{% endblock %}
|
|
||||||
</div>
|
|
||||||
<div class="row-fluid">
|
|
||||||
<div class="span10">
|
|
||||||
<div class="row-fluid">
|
|
||||||
<div class="span1"></div>
|
|
||||||
<div id="content" class="rounded span11">
|
|
||||||
{% block content %}{% endblock %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="span2">
|
|
||||||
<div class="row-fluid">
|
|
||||||
<div id="menus" class="span11">
|
|
||||||
{% block menus %}
|
|
||||||
<div class="menu rounded">
|
|
||||||
<ul>
|
|
||||||
{% block menu %}
|
|
||||||
<li><a href="{% url "index" %}">Home</a></li>
|
|
||||||
<li><a href="{% url "categories" %}">Categories</a></li>
|
|
||||||
<li><a href="{% url "herds" %}">Herds</a></li>
|
|
||||||
<li><a href="{% url "maintainers" %}">Maintainers</a></li>
|
|
||||||
<li><a href="{% url "overlays" %}">Overlays</a></li>
|
|
||||||
<li><a href="{% url "world" %}">Scan World</a></li>
|
|
||||||
|
|
||||||
<li>---</li>
|
|
||||||
|
|
||||||
{% if user.is_authenticated %}
|
|
||||||
<li><a href="{% url "accounts_index" %}">{{ user }}'s profile</a></li>
|
|
||||||
<ul class="submenu">
|
|
||||||
<li><a href="{% url "accounts_categories" %}">Categories</a></li>
|
|
||||||
<li><a href="{% url "accounts_herds" %}">Herds</a></li>
|
|
||||||
<li><a href="{% url "accounts_maintainers" %}">Maintainers</a></li>
|
|
||||||
<li><a href="{% url "accounts_packages" %}">Packages</a></li>
|
|
||||||
<li><a href="{% url "accounts_overlays" %}">Overlays</a></li>
|
|
||||||
</ul>
|
|
||||||
<li><a href="{% url "django.contrib.auth.views.logout" %}">Logout</a></li>
|
|
||||||
{% else %}
|
|
||||||
<li><a href="{% url "django.contrib.auth.views.login" %}?next={% url "accounts_index" %}">Login</a></li>
|
|
||||||
<li><a href="{% url "registration_register" %}">Register</a></li>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<li>---</li>
|
|
||||||
|
|
||||||
{% block menu_feed %}
|
|
||||||
<li>
|
|
||||||
<img src="{{ STATIC_URL }}img/feed.png" alt="feed" />
|
|
||||||
<a title="Global Feed" href="{% url "global_feed" %}">Global Feed</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<img src="{{ STATIC_URL }}img/feed.png" alt="feed" />
|
|
||||||
<a title="Stabilization Candidates Feed" href="{% url "stabilization_candidates_feed" %}">
|
|
||||||
Stabilization Feed
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
{% if user.is_authenticated %}
|
|
||||||
<li>
|
|
||||||
<img src="{{ STATIC_URL }}/img/feed.png" alt="feed" />
|
|
||||||
<a title="{{ user }} Feed" href="{% url "user_feed" %}">
|
|
||||||
{{ user }}'s Feed
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
<li>---</li>
|
|
||||||
<li><a href="{% url "api" %}">API</a></li>
|
|
||||||
<li><a href="{% url "feeds" %}">Feeds</a></li>
|
|
||||||
<li><a href="{% url "config" %}">Server config</a></li>
|
|
||||||
<li><a href="{% url "statistics" %}">Statistics</a></li>
|
|
||||||
<li><a href="{% url "about" %}">About</a></li>
|
|
||||||
{% endblock %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
</div>
|
|
||||||
<div class="span1"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<p>
|
|
||||||
{% block last_scan %}
|
|
||||||
{% if last_scan %}
|
|
||||||
Last scan: {{ last_scan }} ({{ last_scan|timedelta }})
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Questions, Comments, Corrections ?
|
|
||||||
Email: corentin.chary at gmail.com<br />
|
|
||||||
Copyright (C) 2011 <strong>Corentin Chary</strong><br />
|
|
||||||
Original Gentoo artwork and logos copyright (C) Gentoo Foundation.<br />
|
|
||||||
Design inspired by (stolen from) gentoo.org and bugs.gentoo.org.<br />
|
|
||||||
<em>This site is not an official Gentoo website.</em>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,81 +0,0 @@
|
|||||||
{% extends "admin/change_list.html" %}
|
|
||||||
|
|
||||||
{% load url from future %}
|
|
||||||
|
|
||||||
{% block object-tools %}
|
|
||||||
<div>
|
|
||||||
<span id="task_selector"></span>
|
|
||||||
<form id="task_data"></form>
|
|
||||||
<a href="#" id="task_launch">Launch task</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function($){
|
|
||||||
$(document).ready(function() {
|
|
||||||
|
|
||||||
$.get("{% url "registered_tasks" %}", function (data) {
|
|
||||||
var selector = $("<select/>");
|
|
||||||
selector.append(
|
|
||||||
$("<option/>").text("-------------").attr("selected", "selected")
|
|
||||||
);
|
|
||||||
$.each(data.tasks, function(task) {
|
|
||||||
var t = data["tasks"][task];
|
|
||||||
selector.append(
|
|
||||||
$("<option/>").val(task).text(task)
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
selector.change(function() {
|
|
||||||
var task = data["tasks"][$(this).val()];
|
|
||||||
$("#task_data").empty();
|
|
||||||
|
|
||||||
if (task.args) {
|
|
||||||
$.each(task.args, function(i) {
|
|
||||||
var arg = task.args[i]
|
|
||||||
, arg_input = $("<input/>").attr("name", arg)
|
|
||||||
, default_arg;
|
|
||||||
|
|
||||||
if (task.defaults) {
|
|
||||||
var default_arg_i = task.args.length - 1 - i;
|
|
||||||
if (task.defaults[default_arg_i] !== undefined) {
|
|
||||||
default_arg = task.defaults[default_arg_i];
|
|
||||||
arg_input.val(default_arg);
|
|
||||||
|
|
||||||
if (task.defaults_types && task.defaults_types[default_arg_i] === "bool") {
|
|
||||||
arg_input.attr("type", "checkbox").attr("checked", default_arg).val("true");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#task_data").append(
|
|
||||||
$("<label/>").text(arg + ": ").attr("for", arg)
|
|
||||||
).append(
|
|
||||||
arg_input
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
$("#task_selector").append(selector);
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#task_launch").click(function() {
|
|
||||||
var task_name = $("#task_selector").find("select").val();
|
|
||||||
var data = $("#task_data").serialize();
|
|
||||||
var url = "{% url "apply_task" "task_name" %}";
|
|
||||||
|
|
||||||
$.post(url.replace("task_name", task_name), data, function() {
|
|
||||||
alert("Submitted!");
|
|
||||||
location.reload();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
setTimeout(location.reload, 30000);
|
|
||||||
|
|
||||||
});
|
|
||||||
})(django.jQuery);
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
@ -1,34 +0,0 @@
|
|||||||
{% load url from future %}
|
|
||||||
{% load djeuscan_helpers %}
|
|
||||||
|
|
||||||
<table id="table" class="display">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Category</th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" title="Versions in Gentoo" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" title="Versions in Overlays" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" title="Versions only upstream" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/freshness-icon.png" alt="freshness" title="Freshness" /></th>
|
|
||||||
{% if extras %}
|
|
||||||
<th>Graphs</th>
|
|
||||||
{% endif %}
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for category in categories %}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="{% url "category" category.category %}">{{ category.category }}</a>
|
|
||||||
{% package_bar category %}
|
|
||||||
</td>
|
|
||||||
{% package_cols category %}
|
|
||||||
{% if extras %}
|
|
||||||
<td>
|
|
||||||
<img src="{% url "chart_category" category.category 'packages-monthly-small' %}" />
|
|
||||||
<img src="{% url "chart_category" category.category 'versions-monthly-small' %}" />
|
|
||||||
</td>
|
|
||||||
{% endif %}
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
@ -1,36 +0,0 @@
|
|||||||
{% extends "_base.html" %}
|
|
||||||
|
|
||||||
{% block css %}
|
|
||||||
{{ block.super }}
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/table.css" media="screen" title="Normal" />
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block javascript %}
|
|
||||||
{{ block.super }}
|
|
||||||
<script type="text/javascript" language="javascript" src="{{STATIC_URL}}js/jquery.js"></script>
|
|
||||||
<script type="text/javascript" language="javascript" src="{{STATIC_URL}}js/jquery.dataTables.js"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#table').dataTable( {
|
|
||||||
"bPaginate": false,
|
|
||||||
"bInfo": false,
|
|
||||||
"bStateSave": true,
|
|
||||||
"sCookiePrefix": "datatables_"
|
|
||||||
} );
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block menus %}
|
|
||||||
{{ block.super }}
|
|
||||||
<div class="menu notfirst-menu rounded">
|
|
||||||
<ul>
|
|
||||||
<li><img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" /> Gentoo</li>
|
|
||||||
<li><img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" /> Overlays</li>
|
|
||||||
<li><img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" /> Upstream</li>
|
|
||||||
<li><img src="{{ STATIC_URL }}img/unstable-icon.png" alt="unstable" /> Unstable</li>
|
|
||||||
<li><img src="{{ STATIC_URL }}img/freshness-icon.png" alt="freshness" /> Freshness</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,36 +0,0 @@
|
|||||||
{% load url from future %}
|
|
||||||
{% load djeuscan_helpers %}
|
|
||||||
|
|
||||||
<table id="table" class="display">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Herd</th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" title="Versions in Gentoo" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" title="Versions in Overlays" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" title="Versions only upstream" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/freshness-icon.png" alt="freshness" title="Freshness" /></th>
|
|
||||||
{% if extras %}
|
|
||||||
<th>Graphs</th>
|
|
||||||
{% endif %}
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for herd in herds %}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="{% url "herd" herd.herds__herd %}">
|
|
||||||
{{ herd.herds__herd }}
|
|
||||||
</a>
|
|
||||||
{% package_bar herd %}
|
|
||||||
</td>
|
|
||||||
{% package_cols herd %}
|
|
||||||
{% if extras %}
|
|
||||||
<td>
|
|
||||||
<img src="{% url "chart_herd" herd.herds__herd 'packages-monthly-small' %}" />
|
|
||||||
<img src="{% url "chart_herd" herd.herds__herd 'versions-monthly-small' %}" />
|
|
||||||
</td>
|
|
||||||
{% endif %}
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
@ -1,42 +0,0 @@
|
|||||||
{% load url from future %}
|
|
||||||
{% load djeuscan_helpers %}
|
|
||||||
|
|
||||||
<table id="table" class="display">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Maintainer</th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" title="Versions in Gentoo" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" title="Versions in Overlays" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" title="Versions only upstream" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/freshness-icon.png" alt="freshness" title="Freshness" /></th>
|
|
||||||
{% if extras %}
|
|
||||||
<th>Graphs</th>
|
|
||||||
{% endif %}
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for maintainer in maintainers %}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="{% url "maintainer" maintainer.maintainers__email %}">
|
|
||||||
{% if maintainer.maintainers__name != maintainer.maintainers__email %}
|
|
||||||
{{ maintainer.maintainers__name }} <{{ maintainer.maintainers__email }}>
|
|
||||||
{% else %}
|
|
||||||
{{ maintainer.maintainers__name }}
|
|
||||||
{% endif %}
|
|
||||||
</a>
|
|
||||||
{% package_bar maintainer %}
|
|
||||||
</td>
|
|
||||||
{% package_cols maintainer %}
|
|
||||||
|
|
||||||
{% if extras %}
|
|
||||||
<td>
|
|
||||||
<img src="{% url "chart_maintainer" maintainer.maintainers__email 'packages-monthly-small' %}" />
|
|
||||||
<img src="{% url "chart_maintainer" maintainer.maintainers__email 'versions-monthly-small' %}" />
|
|
||||||
</td>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
@ -1,20 +0,0 @@
|
|||||||
{% load url from future %}
|
|
||||||
|
|
||||||
<table id="table" class="display">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Overlay</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for overlay in overlays %}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="{% url "overlay" overlay %}">
|
|
||||||
{{ overlay }}
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
@ -1,9 +0,0 @@
|
|||||||
{% load mul %}
|
|
||||||
{% load sub %}
|
|
||||||
{% load div %}
|
|
||||||
|
|
||||||
<div class="package_stat">
|
|
||||||
<div class="packaged" style="width: {{ infos.n_packaged|mul:100.0|div:infos.n_versions }}%"></div>
|
|
||||||
<div class="overlay" style="width: {{ infos.n_overlay|mul:100.0|div:infos.n_versions }}%"></div>
|
|
||||||
<div class="upstream" style="width: {{ infos.n_versions|sub:infos.n_overlay|sub:infos.n_packaged|mul:100.0|div:infos.n_versions }}%"></div>
|
|
||||||
</div>
|
|
@ -1,30 +0,0 @@
|
|||||||
{% load djeuscan_helpers %}
|
|
||||||
{% load mul %}
|
|
||||||
{% load sub %}
|
|
||||||
{% load div %}
|
|
||||||
|
|
||||||
<td>{{ infos.n_packaged }}</td>
|
|
||||||
|
|
||||||
{% if infos.n_overlay == 0 or infos.n_overlay <= infos.n_packaged %}
|
|
||||||
<td>
|
|
||||||
{% elif infos.n_overlay < infos.n_packaged %}
|
|
||||||
<td class="bad">
|
|
||||||
{% else %}
|
|
||||||
<td class="ugly">
|
|
||||||
{% endif %}
|
|
||||||
{{ infos.n_overlay }}
|
|
||||||
</td>
|
|
||||||
|
|
||||||
{% if infos.n_versions == infos.n_packaged|add:infos.n_overlay %}
|
|
||||||
<td>
|
|
||||||
{% elif infos.n_versions < infos.n_packaged|add:infos.n_overlay|mul:2 %}
|
|
||||||
<td class="bad">
|
|
||||||
{% else %}
|
|
||||||
<td class="ugly">
|
|
||||||
{% endif %}
|
|
||||||
{{ infos.n_versions|sub:infos.n_packaged|sub:infos.n_overlay }}
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
{{ infos.n_packaged|add:infos.n_overlay|div:infos.n_versions|mul:100|floatformat:"0" }}
|
|
||||||
</td>
|
|
@ -1,125 +0,0 @@
|
|||||||
{% load djeuscan_helpers %}
|
|
||||||
{% load url from future %}
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
{% if package.description %}
|
|
||||||
<dt>Description</dt>
|
|
||||||
<dd>{{ package.description }}</dd>
|
|
||||||
{% endif %}
|
|
||||||
{% if package.homepage %}
|
|
||||||
<dt>Homepage</dt>
|
|
||||||
<dd>
|
|
||||||
{% for homepage in package.homepages %}
|
|
||||||
<a href="{{ homepage }}">{{ homepage }}</a><br />
|
|
||||||
{% endfor %}
|
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
||||||
{% if package.herds.all %}
|
|
||||||
<dt>Herds</dt>
|
|
||||||
<dd>
|
|
||||||
{% for herd in package.herds.all %}
|
|
||||||
<p>
|
|
||||||
<a href="{% url "herd" herd.herd %}">
|
|
||||||
{{ herd.herd }}
|
|
||||||
</a>
|
|
||||||
<{{ herd.email }}>
|
|
||||||
</p>
|
|
||||||
{% endfor %}
|
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
||||||
{% if package.maintainers.all %}
|
|
||||||
<dt>Maintainers</dt>
|
|
||||||
<dd>
|
|
||||||
{% for maintainer in package.maintainers.all %}
|
|
||||||
<p>
|
|
||||||
{% if maintainer.name != maintainer.email %}
|
|
||||||
<a href="{% url "maintainer" maintainer.email %}">
|
|
||||||
{{ maintainer.name }}
|
|
||||||
</a>
|
|
||||||
<{{ maintainer.email }}>
|
|
||||||
{% else %}
|
|
||||||
<a href="{% url "maintainer" maintainer.email %}">
|
|
||||||
{{ maintainer.email }}
|
|
||||||
</a>
|
|
||||||
{% endif %}
|
|
||||||
</p>
|
|
||||||
{% endfor %}
|
|
||||||
</dd>
|
|
||||||
<dt>Q&A</dt>
|
|
||||||
<dd>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="https://bugs.gentoo.org/buglist.cgi?quicksearch={{ package.cp }}">
|
|
||||||
{{ package.cp }} on bugs.g.o
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="http://qa-reports.gentoo.org/output/genrdeps/rindex/{{ package.cp }}">
|
|
||||||
{{ package.cp }} on qa-reports.g.o
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
||||||
{% if packaged %}
|
|
||||||
<dt>Packaged Versions</dt>
|
|
||||||
<dd>
|
|
||||||
<ul>
|
|
||||||
{% for version in packaged %}
|
|
||||||
<li id="version-{{ version.tag }}">
|
|
||||||
{% if version.overlay == "gentoo" %}
|
|
||||||
<img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" title="In Gentoo" />
|
|
||||||
{% else %}
|
|
||||||
<img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" title="In Overlays" />
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if version.vtype and not version.vtype|is_stable %}
|
|
||||||
<img src="{{ STATIC_URL }}img/unstable-icon.png" alt="unstable" title="{{ version.vtype }}" />
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if version.ebuild_path %}
|
|
||||||
<a href="{% url "package_version_ebuild" version.overlay version.cpv %}">
|
|
||||||
{{ version.version }}{% if version.revision != "r0" %}-{{ version.revision }}{% endif %}{% if version.slot != "0" %}:{{ version.slot }}{% endif %}
|
|
||||||
</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if version.metadata_path %}
|
|
||||||
<a href="{% url "package_metadata" version.overlay package.category package.name %}">
|
|
||||||
<img src="{{ STATIC_URL }}img/metadata.png" alt="Metadata" />
|
|
||||||
</a>
|
|
||||||
{% endif %}
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
||||||
{% if upstream %}
|
|
||||||
<dt>Upstream versions</dt>
|
|
||||||
<dd>
|
|
||||||
<ul>
|
|
||||||
{% for version in upstream %}
|
|
||||||
<li id="version-{{ version.tag }}">
|
|
||||||
<img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" title="Upstream" />
|
|
||||||
|
|
||||||
{% if version.vtype and not version.vtype|is_stable %}
|
|
||||||
<img src="{{ STATIC_URL }}img/unstable-icon.png" alt="unstable" title="{{ version.vtype }}" />
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{ version.version }} -
|
|
||||||
{% for url in version.urls_list %}
|
|
||||||
<a href="{{ url }}">{{ url }}</a>
|
|
||||||
{% endfor %}
|
|
||||||
({% if version.handler != "generic" %}{{ version.handler }} - {% endif %}{{ version.confidence }}%)
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
||||||
{% include "euscan/_package_vlogs.html" %}
|
|
||||||
{% if log %}
|
|
||||||
<dt>euscan log</dt>
|
|
||||||
<dd>
|
|
||||||
<p>Date: {{ log.datetime }}</p>
|
|
||||||
<pre class="log">{{ msg|ansi_to_html|safe }}</pre>
|
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
||||||
</dl>
|
|
@ -1,31 +0,0 @@
|
|||||||
{% load djeuscan_helpers %}
|
|
||||||
|
|
||||||
{% if vlog %}
|
|
||||||
<dt>Version history</dt>
|
|
||||||
<dd>
|
|
||||||
<ul class="log">
|
|
||||||
{% for version in vlog %}
|
|
||||||
{% if version.action == version.VERSION_ADDED %}
|
|
||||||
<li class="added">
|
|
||||||
{% else %}
|
|
||||||
<li class="removed">
|
|
||||||
{% endif %}
|
|
||||||
{% if version.overlay == "gentoo" %}
|
|
||||||
<img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" title="In Gentoo" />
|
|
||||||
{% elif version.overlay %}
|
|
||||||
<img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" title="In Overlays" />
|
|
||||||
{% else %}
|
|
||||||
<img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" title="Upstream" />
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if version.vtype and not version.vtype|is_stable %}
|
|
||||||
<img src="{{ STATIC_URL }}img/unstable-icon.png" alt="unstable" title="{{ version.vtype }}" />
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{ version }} - {{ version.datetime }}
|
|
||||||
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
@ -1,62 +0,0 @@
|
|||||||
{% load djeuscan_helpers %}
|
|
||||||
{% load sub %}
|
|
||||||
{% load div %}
|
|
||||||
{% load mul %}
|
|
||||||
{% load djeuscan_helpers %}
|
|
||||||
|
|
||||||
{% load url from future %}
|
|
||||||
|
|
||||||
<table id="table" class="display">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Package</th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" title="Last version in Gentoo" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" title="Last version in Overlays" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" title="Last version Upstream" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/gentoo-icon.png" alt="gentoo" title="Versions in Gentoo" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/overlay-icon.png" alt="overlays" title="Versions in Overlays" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/upstream-icon.png" alt="upstream" title="Versions only upstream" /></th>
|
|
||||||
<th><img src="{{ STATIC_URL }}img/freshness-icon.png" alt="freshness" title="Freshness" /></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for package in packages %}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="{% url "package" package.category package.name %}">
|
|
||||||
{{ package.category }}/{{ package.name }}
|
|
||||||
</a>
|
|
||||||
{% package_bar package %}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% with vtype=package.last_version_gentoo.version|version_type %}
|
|
||||||
{% if not vtype|is_stable %}
|
|
||||||
<img src="{{ STATIC_URL }}img/unstable-icon.png" alt="unstable" title="{{ vtype }}" />
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
{{ package.last_version_gentoo.version|truncatechars:15 }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% with vtype=package.last_version_overlay.version|version_type %}
|
|
||||||
{% if not vtype|is_stable %}
|
|
||||||
<img src="{{ STATIC_URL }}img/unstable-icon.png" alt="unstable" title="{{ vtype }}" />
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
{{ package.last_version_overlay.version|truncatechars:15 }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% with vtype=package.last_version_upstream.version|version_type %}
|
|
||||||
{% if not vtype|is_stable %}
|
|
||||||
<img src="{{ STATIC_URL }}img/unstable-icon.png" alt="unstable" title="{{ vtype }}" />
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
{{ package.last_version_upstream.version|truncatechars:15 }}
|
|
||||||
</td>
|
|
||||||
{% package_cols package %}
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
@ -1,41 +0,0 @@
|
|||||||
{% extends "_base.html" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h2>What's euscan ?</h2>
|
|
||||||
<p>
|
|
||||||
Euscan is both a tool to check if an ebuild is outdated (app-portage/euscan) and a web interface.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
This web interface allow you to browse the portage tree, and find outdated ebuilds. It is designed to help maintainers monitor their packages and bump them.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
euscan code source is available on <a href="http://github.com/iksaif/euscan">github</a>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Original Gentoo artwork and logos copyright (C) Gentoo Foundation.
|
|
||||||
Design inspired by (stolen from) gentoo.org and bugs.gentoo.org.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<em>This site is not an official Gentoo website.</em>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Copyright (C) 2011 <strong>Corentin Chary</strong>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Powered by:
|
|
||||||
<a href="http://kernel.org" title="Linux Kernel">
|
|
||||||
<img src="{{STATIC_URL}}img/linux.png" alt="Linux Kernel" />
|
|
||||||
</a>
|
|
||||||
<a href="http://gentoo.org" title="Gentoo">
|
|
||||||
<img src="{{STATIC_URL}}img/gentoo.png" alt="Gentoo Linux" />
|
|
||||||
</a>
|
|
||||||
<a href="http://www.djangoproject.com/" title="Django">
|
|
||||||
<img src="{{STATIC_URL}}img/django.png" alt="Django" />
|
|
||||||
</a>
|
|
||||||
<a href="http://python.org" title="Python">
|
|
||||||
<img src="{{STATIC_URL}}img/python.png" alt="Python" />
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
{% endblock %}
|
|
@ -1,22 +0,0 @@
|
|||||||
{% extends "_base.html" %}
|
|
||||||
|
|
||||||
{% load url from future %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h2>API</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="{% url "api.views.root" 'json' %}">/api/1.0/api.json</a></li>
|
|
||||||
<li><a href="{% url "api.views.statistics" 'json' %}">/api/1.0/statistics.json</a></li>
|
|
||||||
<li><a href="{% url "api.views.maintainers" 'json' %}">/api/1.0/maintainers.json</a></li>
|
|
||||||
<li><a href="{% url "api.views.herds" 'json' %}">/api/1.0/herds.json</a></li>
|
|
||||||
<li><a href="{% url "api.views.categories" 'json' %}">/api/1.0/categories.json</a></li>
|
|
||||||
<li>/api/1.0/packages/by-maintainer/<maintainer-id>.json</li>
|
|
||||||
<li>/api/1.0/packages/by-category/<category>.json</li>
|
|
||||||
<li>/api/1.0/packages/by-herd/<herd>.json</li>
|
|
||||||
<li>/api/1.0/package/<category>/<package>.json</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Formats: xml, yaml and json</p>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
@ -1,15 +0,0 @@
|
|||||||
{% extends "euscan/_datatable.html" %}
|
|
||||||
|
|
||||||
{% load djeuscan_helpers %}
|
|
||||||
{% load url from future %}
|
|
||||||
|
|
||||||
{% block title %}
|
|
||||||
{{ block.super }} - categories
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h2>Categories</h2>
|
|
||||||
|
|
||||||
{% categories_table categories request.GET.extras %}
|
|
||||||
|
|
||||||
{% endblock %}
|
|
@ -1,67 +0,0 @@
|
|||||||
{% extends "euscan/_datatable.html" %}
|
|
||||||
|
|
||||||
{% load url from future %}
|
|
||||||
{% load djeuscan_helpers %}
|
|
||||||
{% load euscan_accounts_helpers %}
|
|
||||||
|
|
||||||
{% block title %}
|
|
||||||
{{ block.super }} - Category: {{ category }}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block menu_feed %}
|
|
||||||
{{ block.super }}
|
|
||||||
<li>
|
|
||||||
<img src="{{ STATIC_URL }}/img/feed.png" alt="feed" />
|
|
||||||
<a title="{{ category }} Feed" href="{% url "category_feed" category %}">
|
|
||||||
{{ category|truncatechars:15 }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h2>
|
|
||||||
Category: {{ category }}
|
|
||||||
|
|
||||||
{% if user.is_authenticated %}
|
|
||||||
<span class="pull-right padding-bottom10">
|
|
||||||
{% favourite_buttons "category" category %}
|
|
||||||
</span>
|
|
||||||
{% endif %}
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<p><em>{{ category.description }}</em></p>
|
|
||||||
|
|
||||||
{% packages packages %}
|
|
||||||
|
|
||||||
<h3>Statistics</h3>
|
|
||||||
<h4>Current statistics</h4>
|
|
||||||
<p>
|
|
||||||
<img alt="pie versions" src="{% url "chart_category" category 'pie-versions' %}" />
|
|
||||||
<img alt="pie packages" src="{% url "chart_category" category 'pie-packages' %}" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>All Time</h4>
|
|
||||||
<p>
|
|
||||||
<img alt="versions weekly" src="{% url "chart_category" category 'versions-weekly' %}" />
|
|
||||||
<img alt="versions monthly" src="{% url "chart_category" category 'versions-monthly' %}" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<img alt="packages weekly" src="{% url "chart_category" category 'packages-weekly' %}" />
|
|
||||||
<img alt="packages monthly" src="{% url "chart_category" category 'packages-monthly' %}" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<script src="{{ STATIC_URL }}js/favourite.js" type="text/javascript"></script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block menus %}
|
|
||||||
{{ block.super }}
|
|
||||||
<div class="menu rounded notfirst-menu">
|
|
||||||
<dl>
|
|
||||||
<dt>Versions</dt>
|
|
||||||
<dd><img alt="versions" src="{% url "chart_category" category 'versions-monthly-small' %}" /></dd>
|
|
||||||
<dt>Packages</dt>
|
|
||||||
<dd><img alt="packages" src="{% url "chart_category" category 'packages-monthly-small' %}" /></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,124 +0,0 @@
|
|||||||
{% extends "_base.html" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h2>Server configuration</h2>
|
|
||||||
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">make.conf</h4>
|
|
||||||
</caption>
|
|
||||||
{% for key, value in make_conf.items %}
|
|
||||||
<tr>
|
|
||||||
<td><b>{{ key }}</b></td>
|
|
||||||
<td>{{ value }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Available overlays</h4>
|
|
||||||
</caption>
|
|
||||||
{% for key, value in layman_repos.items %}
|
|
||||||
<tr>
|
|
||||||
<td><b><a href="{{ value.homepage }}">{{ key }}</a></b></td>
|
|
||||||
<td>{{ value.description }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Euscan config</h4>
|
|
||||||
</caption>
|
|
||||||
{% for key, value in euscan_config.CONFIG.items %}
|
|
||||||
<tr>
|
|
||||||
<td><b>{{ key }}</b></td>
|
|
||||||
<td>{{ value }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Versions blacklist</h4>
|
|
||||||
</caption>
|
|
||||||
{% for item in euscan_config.BLACKLIST_VERSIONS %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ item }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Packages blacklist</h4>
|
|
||||||
</caption>
|
|
||||||
{% for item in euscan_config.BLACKLIST_PACKAGES %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ item }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Scandir blacklist</h4>
|
|
||||||
</caption>
|
|
||||||
{% for item in euscan_config.SCANDIR_BLACKLIST_URLS %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ item }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Bruteforce packages blacklist</h4>
|
|
||||||
</caption>
|
|
||||||
{% for item in euscan_config.BRUTEFORCE_BLACKLIST_PACKAGES %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ item }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Bruteforce urls blacklist</h4>
|
|
||||||
</caption>
|
|
||||||
{% for item in euscan_config.BRUTEFORCE_BLACKLIST_URLS %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ item }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<caption>
|
|
||||||
<h4 class="padded">Robots.txt domain blacklist</h4>
|
|
||||||
</caption>
|
|
||||||
{% for item in euscan_config.ROBOTS_TXT_BLACKLIST_DOMAINS %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ item }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
{% endblock %}
|
|
@ -1,30 +0,0 @@
|
|||||||
{% extends "_base.html" %}
|
|
||||||
|
|
||||||
{% load url from future %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h2>Feeds</h2>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<p>
|
|
||||||
Euscan provides different types of feed for keeping an eye on the packages
|
|
||||||
you're interested in as well as a set of options to customize them.
|
|
||||||
</p>
|
|
||||||
<h4>Options</h4>
|
|
||||||
<ul>
|
|
||||||
<li><em>portage_info</em>: Get info about portage updates (default: on)</li>
|
|
||||||
<li><em>upstream_info</em>: Get info about upstream updates (default: on)</li>
|
|
||||||
<li><em>show_adds</em>: Show version bumps (default: on)</li>
|
|
||||||
<li><em>show_removals</em>: Show removals (default: on)</li>
|
|
||||||
<li><em>ignore_pre</em>: Ignore unstable releases (default: off)</li>
|
|
||||||
<li><em>ignore_pre_if_stable</em>: Ignore unstable releases only if current release is stable (default: off)</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h4>Usage examples</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="{% url "global_feed" %}?portage_info=0&show_removals=0">{% url "global_feed" %}?portage_info=0&show_removals=0</a></li>
|
|
||||||
<li><a href="{% url "global_feed" %}?ignore_pre=true">{% url "global_feed" %}?ignore_pre=true</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user