diff --git a/AUTHORS b/AUTHORS index 5dbd90f..b8fd9ca 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,8 +1,3 @@ * euscan Original author: Corentin Chary Current maintainer: src_prepare group https://gitlab.com/src_prepare - -* euscanwww - Original author: Corentin Chary - Current maintainer: src_prepare group https://gitlab.com/src_prepare - diff --git a/Makefile b/Makefile index 8dc62c3..aa62957 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,6 @@ BIN = euscan clean install-user install-user-test - install-user-web install uninstall distclean @@ -23,9 +22,6 @@ install-user: install-user-test: pip install --user .'[test]' -install-user-web: - pip install --user .'[web]' - install: install-user diff --git a/README.rst b/README.rst index 01ace03..27e50a6 100644 --- a/README.rst +++ b/README.rst @@ -85,89 +85,6 @@ default settings. Maybe we should add the ability to use /etc/euscan.conf and ~/.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 ? ================== diff --git a/TODO b/TODO index ee5f05f..61fd34c 100644 --- a/TODO +++ b/TODO @@ -61,7 +61,6 @@ euscanwww ### 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 ? - ~arch / stable support: see "models: keywords" - stabilisation candidates: check stabilizations rules, and see how this can be automated diff --git a/euscanwww/.gitignore b/euscanwww/.gitignore deleted file mode 100644 index 73c561d..0000000 --- a/euscanwww/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -var/cache/*/ -var/charts/*.png -var/rrd/*.rrd -var/db/euscan.db -var/db/euscan.db-journal -local_settings.py diff --git a/euscanwww/INSTALL b/euscanwww/INSTALL deleted file mode 100644 index d6b6cfc..0000000 --- a/euscanwww/INSTALL +++ /dev/null @@ -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 diff --git a/euscanwww/README.Celery b/euscanwww/README.Celery deleted file mode 100644 index 00884c5..0000000 --- a/euscanwww/README.Celery +++ /dev/null @@ -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 diff --git a/euscanwww/__init__.py b/euscanwww/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/djeuscan/__init__.py b/euscanwww/djeuscan/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/djeuscan/admin.py b/euscanwww/djeuscan/admin.py deleted file mode 100644 index bdf7f6b..0000000 --- a/euscanwww/djeuscan/admin.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/api/__init__.py b/euscanwww/djeuscan/api/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/djeuscan/api/emitters.py b/euscanwww/djeuscan/api/emitters.py deleted file mode 100644 index 1f7a63a..0000000 --- a/euscanwww/djeuscan/api/emitters.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/api/handlers.py b/euscanwww/djeuscan/api/handlers.py deleted file mode 100644 index 922fe16..0000000 --- a/euscanwww/djeuscan/api/handlers.py +++ /dev/null @@ -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 diff --git a/euscanwww/djeuscan/api/urls.py b/euscanwww/djeuscan/api/urls.py deleted file mode 100644 index 578a8be..0000000 --- a/euscanwww/djeuscan/api/urls.py +++ /dev/null @@ -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.+)$', statistics_handler, - name='api.views.statistics'), - url(r'^1.0/herds\.(?P.+)$', herds_handler, - name='api.views.herds'), - url(r'^1.0/categories\.(?P.+)$', categories_handler, - name='api.views.categories'), - url(r'^1.0/maintainers\.(?P.+)$', maintainers_handler, - name='api.views.maintainers'), - - url(r'^1.0/packages/by-maintainer/(?P\d+)\.(?P.+)$', - packages_handler, name='api.views.packages'), - url(r'^1.0/packages/by-maintainer/(?P[^/]+)\.(?P.+)$', - packages_handler, name='api.views.packages'), - url(r'^1.0/packages/by-herd/(?P[\@\{\}\w+.-]*)\.(?P.+)?$', - packages_handler, name='api.views.packages'), - url(r'^1.0/packages/by-category/(?P[\w+][\w+.-]*)\.(?P.+)?$', - packages_handler, name='api.views.packages'), - - url(r'^1.0/package/(?P[\w+][\w+.-]*)/(?P[\w+][\w+.-]*)\.(?P.+)$', - package_handler, name='api.views.package'), - - url(r'^1.0/api\.(?P.+)$', - root_handler, name='api.views.root'), -) diff --git a/euscanwww/djeuscan/charts.py b/euscanwww/djeuscan/charts.py deleted file mode 100644 index 4e4ca97..0000000 --- a/euscanwww/djeuscan/charts.py +++ /dev/null @@ -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' - ) diff --git a/euscanwww/djeuscan/feeds.py b/euscanwww/djeuscan/feeds.py deleted file mode 100644 index 62d4d78..0000000 --- a/euscanwww/djeuscan/feeds.py +++ /dev/null @@ -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}
- {herds}
- {maintainers}
- Open bugs for {cat_pn}: - Show
- Open bugs for {pn}: - Show
- File bug - """.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 diff --git a/euscanwww/djeuscan/forms.py b/euscanwww/djeuscan/forms.py deleted file mode 100644 index a1c6f65..0000000 --- a/euscanwww/djeuscan/forms.py +++ /dev/null @@ -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') diff --git a/euscanwww/djeuscan/helpers.py b/euscanwww/djeuscan/helpers.py deleted file mode 100644 index 171ba5e..0000000 --- a/euscanwww/djeuscan/helpers.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/management/__init__.py b/euscanwww/djeuscan/management/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/djeuscan/management/commands/__init__.py b/euscanwww/djeuscan/management/commands/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/djeuscan/management/commands/list_packages.py b/euscanwww/djeuscan/management/commands/list_packages.py deleted file mode 100644 index 23efe7a..0000000 --- a/euscanwww/djeuscan/management/commands/list_packages.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/management/commands/regen_rrds.py b/euscanwww/djeuscan/management/commands/regen_rrds.py deleted file mode 100644 index 82c3fd4..0000000 --- a/euscanwww/djeuscan/management/commands/regen_rrds.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/management/commands/scan_metadata.py b/euscanwww/djeuscan/management/commands/scan_metadata.py deleted file mode 100644 index 7fb5b52..0000000 --- a/euscanwww/djeuscan/management/commands/scan_metadata.py +++ /dev/null @@ -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 = '' - 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'], - ) diff --git a/euscanwww/djeuscan/management/commands/scan_portage.py b/euscanwww/djeuscan/management/commands/scan_portage.py deleted file mode 100644 index f1d9485..0000000 --- a/euscanwww/djeuscan/management/commands/scan_portage.py +++ /dev/null @@ -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, - ) diff --git a/euscanwww/djeuscan/management/commands/scan_upstream.py b/euscanwww/djeuscan/management/commands/scan_upstream.py deleted file mode 100644 index a1528d4..0000000 --- a/euscanwww/djeuscan/management/commands/scan_upstream.py +++ /dev/null @@ -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 = '' - 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, - ) diff --git a/euscanwww/djeuscan/management/commands/stabilization_candidates.py b/euscanwww/djeuscan/management/commands/stabilization_candidates.py deleted file mode 100644 index 890e0d1..0000000 --- a/euscanwww/djeuscan/management/commands/stabilization_candidates.py +++ /dev/null @@ -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) \ No newline at end of file diff --git a/euscanwww/djeuscan/management/commands/update_counters.py b/euscanwww/djeuscan/management/commands/update_counters.py deleted file mode 100644 index 35d1830..0000000 --- a/euscanwww/djeuscan/management/commands/update_counters.py +++ /dev/null @@ -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, - ) diff --git a/euscanwww/djeuscan/management/commands/update_portage_trees.py b/euscanwww/djeuscan/management/commands/update_portage_trees.py deleted file mode 100644 index b114548..0000000 --- a/euscanwww/djeuscan/management/commands/update_portage_trees.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/managers.py b/euscanwww/djeuscan/managers.py deleted file mode 100644 index a55f38c..0000000 --- a/euscanwww/djeuscan/managers.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/migrations/0001_initial.py b/euscanwww/djeuscan/migrations/0001_initial.py deleted file mode 100644 index d05d2e8..0000000 --- a/euscanwww/djeuscan/migrations/0001_initial.py +++ /dev/null @@ -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'] diff --git a/euscanwww/djeuscan/migrations/0002_auto__chg_field_package_homepage.py b/euscanwww/djeuscan/migrations/0002_auto__chg_field_package_homepage.py deleted file mode 100644 index 1d0aa00..0000000 --- a/euscanwww/djeuscan/migrations/0002_auto__chg_field_package_homepage.py +++ /dev/null @@ -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'] diff --git a/euscanwww/djeuscan/migrations/0003_auto__add_refreshpackagequery__chg_field_package_last_version_gentoo__.py b/euscanwww/djeuscan/migrations/0003_auto__add_refreshpackagequery__chg_field_package_last_version_gentoo__.py deleted file mode 100644 index 9dfa51b..0000000 --- a/euscanwww/djeuscan/migrations/0003_auto__add_refreshpackagequery__chg_field_package_last_version_gentoo__.py +++ /dev/null @@ -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'] diff --git a/euscanwww/djeuscan/migrations/0004_auto__add_categoryassociation__add_unique_categoryassociation_user_cat.py b/euscanwww/djeuscan/migrations/0004_auto__add_categoryassociation__add_unique_categoryassociation_user_cat.py deleted file mode 100644 index 888fefa..0000000 --- a/euscanwww/djeuscan/migrations/0004_auto__add_categoryassociation__add_unique_categoryassociation_user_cat.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0005_auto__add_field_version_version_type__add_field_version_handler__add_f.py b/euscanwww/djeuscan/migrations/0005_auto__add_field_version_version_type__add_field_version_handler__add_f.py deleted file mode 100644 index 64eda3c..0000000 --- a/euscanwww/djeuscan/migrations/0005_auto__add_field_version_version_type__add_field_version_handler__add_f.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0006_auto__add_field_euscanresult_scan_time__add_field_euscanresult_ebuild.py b/euscanwww/djeuscan/migrations/0006_auto__add_field_euscanresult_scan_time__add_field_euscanresult_ebuild.py deleted file mode 100644 index 9e4bcce..0000000 --- a/euscanwww/djeuscan/migrations/0006_auto__add_field_euscanresult_scan_time__add_field_euscanresult_ebuild.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0007_auto__del_field_refreshpackagequery_query__add_field_refreshpackageque.py b/euscanwww/djeuscan/migrations/0007_auto__del_field_refreshpackagequery_query__add_field_refreshpackageque.py deleted file mode 100644 index 1f210c1..0000000 --- a/euscanwww/djeuscan/migrations/0007_auto__del_field_refreshpackagequery_query__add_field_refreshpackageque.py +++ /dev/null @@ -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'] diff --git a/euscanwww/djeuscan/migrations/0008_auto__add_problemreport.py b/euscanwww/djeuscan/migrations/0008_auto__add_problemreport.py deleted file mode 100644 index db2bce4..0000000 --- a/euscanwww/djeuscan/migrations/0008_auto__add_problemreport.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0009_auto__add_overlayassociation__add_unique_overlayassociation_user_overl.py b/euscanwww/djeuscan/migrations/0009_auto__add_overlayassociation__add_unique_overlayassociation_user_overl.py deleted file mode 100644 index 6ebd84c..0000000 --- a/euscanwww/djeuscan/migrations/0009_auto__add_overlayassociation__add_unique_overlayassociation_user_overl.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0010_auto__add_field_version_ebuild_path__add_field_version_metadata_path.py b/euscanwww/djeuscan/migrations/0010_auto__add_field_version_ebuild_path__add_field_version_metadata_path.py deleted file mode 100644 index 100e7a3..0000000 --- a/euscanwww/djeuscan/migrations/0010_auto__add_field_version_ebuild_path__add_field_version_metadata_path.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0011_auto__del_field_version_version_type__add_field_version_vtype.py b/euscanwww/djeuscan/migrations/0011_auto__del_field_version_version_type__add_field_version_vtype.py deleted file mode 100644 index eb0da22..0000000 --- a/euscanwww/djeuscan/migrations/0011_auto__del_field_version_version_type__add_field_version_vtype.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0012_auto__add_field_versionlog_vtype.py b/euscanwww/djeuscan/migrations/0012_auto__add_field_versionlog_vtype.py deleted file mode 100644 index 920a6d0..0000000 --- a/euscanwww/djeuscan/migrations/0012_auto__add_field_versionlog_vtype.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0013_auto.py b/euscanwww/djeuscan/migrations/0013_auto.py deleted file mode 100644 index 5d2a1ee..0000000 --- a/euscanwww/djeuscan/migrations/0013_auto.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0014_auto.py b/euscanwww/djeuscan/migrations/0014_auto.py deleted file mode 100644 index 74cc7c3..0000000 --- a/euscanwww/djeuscan/migrations/0014_auto.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0015_initial_celery_periodictasks.py b/euscanwww/djeuscan/migrations/0015_initial_celery_periodictasks.py deleted file mode 100644 index c25d411..0000000 --- a/euscanwww/djeuscan/migrations/0015_initial_celery_periodictasks.py +++ /dev/null @@ -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 diff --git a/euscanwww/djeuscan/migrations/0016_auto__del_maintainerassociation__del_unique_maintainerassociation_user.py b/euscanwww/djeuscan/migrations/0016_auto__del_maintainerassociation__del_unique_maintainerassociation_user.py deleted file mode 100644 index b4fe300..0000000 --- a/euscanwww/djeuscan/migrations/0016_auto__del_maintainerassociation__del_unique_maintainerassociation_user.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0017_auto__add_unique_overlay_name__add_unique_category_name.py b/euscanwww/djeuscan/migrations/0017_auto__add_unique_overlay_name__add_unique_category_name.py deleted file mode 100644 index 7d95034..0000000 --- a/euscanwww/djeuscan/migrations/0017_auto__add_unique_overlay_name__add_unique_category_name.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0018_auto__add_field_userprofile_upstream_info__add_field_userprofile_porta.py b/euscanwww/djeuscan/migrations/0018_auto__add_field_userprofile_upstream_info__add_field_userprofile_porta.py deleted file mode 100644 index 63987c5..0000000 --- a/euscanwww/djeuscan/migrations/0018_auto__add_field_userprofile_upstream_info__add_field_userprofile_porta.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0019_auto__del_field_userprofile_portage_info__del_field_userprofile_upstre.py b/euscanwww/djeuscan/migrations/0019_auto__del_field_userprofile_portage_info__del_field_userprofile_upstre.py deleted file mode 100644 index 7aa2289..0000000 --- a/euscanwww/djeuscan/migrations/0019_auto__del_field_userprofile_portage_info__del_field_userprofile_upstre.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0020_auto__add_field_userprofile_email_every.py b/euscanwww/djeuscan/migrations/0020_auto__add_field_userprofile_email_every.py deleted file mode 100644 index c0f1525..0000000 --- a/euscanwww/djeuscan/migrations/0020_auto__add_field_userprofile_email_every.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0021_auto__add_field_userprofile_last_email.py b/euscanwww/djeuscan/migrations/0021_auto__add_field_userprofile_last_email.py deleted file mode 100644 index 5a2e9dd..0000000 --- a/euscanwww/djeuscan/migrations/0021_auto__add_field_userprofile_last_email.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0022_auto__del_userprofile.py b/euscanwww/djeuscan/migrations/0022_auto__del_userprofile.py deleted file mode 100644 index e2a401b..0000000 --- a/euscanwww/djeuscan/migrations/0022_auto__del_userprofile.py +++ /dev/null @@ -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'] diff --git a/euscanwww/djeuscan/migrations/0023_auto__del_unique_version_slot_overlay_revision_version_package__add_un.py b/euscanwww/djeuscan/migrations/0023_auto__del_unique_version_slot_overlay_revision_version_package__add_un.py deleted file mode 100644 index 456ec7f..0000000 --- a/euscanwww/djeuscan/migrations/0023_auto__del_unique_version_slot_overlay_revision_version_package__add_un.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0024_add_index_handler.py b/euscanwww/djeuscan/migrations/0024_add_index_handler.py deleted file mode 100644 index 7b4b0b3..0000000 --- a/euscanwww/djeuscan/migrations/0024_add_index_handler.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0024_auto.py b/euscanwww/djeuscan/migrations/0024_auto.py deleted file mode 100644 index 02a81f6..0000000 --- a/euscanwww/djeuscan/migrations/0024_auto.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0025_auto__del_field_version_alive.py b/euscanwww/djeuscan/migrations/0025_auto__del_field_version_alive.py deleted file mode 100644 index 8416130..0000000 --- a/euscanwww/djeuscan/migrations/0025_auto__del_field_version_alive.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0026_auto__add_field_category_description__add_field_overlay_description__a.py b/euscanwww/djeuscan/migrations/0026_auto__add_field_category_description__add_field_overlay_description__a.py deleted file mode 100644 index 7100301..0000000 --- a/euscanwww/djeuscan/migrations/0026_auto__add_field_category_description__add_field_overlay_description__a.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0027_auto__add_field_overlay_overlay_path.py b/euscanwww/djeuscan/migrations/0027_auto__add_field_overlay_overlay_path.py deleted file mode 100644 index e3d83aa..0000000 --- a/euscanwww/djeuscan/migrations/0027_auto__add_field_overlay_overlay_path.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0028_auto__add_field_version_stabilization_candidate.py b/euscanwww/djeuscan/migrations/0028_auto__add_field_version_stabilization_candidate.py deleted file mode 100644 index 594b8ac..0000000 --- a/euscanwww/djeuscan/migrations/0028_auto__add_field_version_stabilization_candidate.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0029_auto.py b/euscanwww/djeuscan/migrations/0029_auto.py deleted file mode 100644 index 0b873aa..0000000 --- a/euscanwww/djeuscan/migrations/0029_auto.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0030_auto__chg_field_category_description__chg_field_overlay_homepage__chg_.py b/euscanwww/djeuscan/migrations/0030_auto__chg_field_category_description__chg_field_overlay_homepage__chg_.py deleted file mode 100644 index cd946b6..0000000 --- a/euscanwww/djeuscan/migrations/0030_auto__chg_field_category_description__chg_field_overlay_homepage__chg_.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/0031_auto__chg_field_version_metadata_path.py b/euscanwww/djeuscan/migrations/0031_auto__chg_field_version_metadata_path.py deleted file mode 100644 index 1c39724..0000000 --- a/euscanwww/djeuscan/migrations/0031_auto__chg_field_version_metadata_path.py +++ /dev/null @@ -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'] \ No newline at end of file diff --git a/euscanwww/djeuscan/migrations/__init__.py b/euscanwww/djeuscan/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/djeuscan/models.py b/euscanwww/djeuscan/models.py deleted file mode 100644 index e03d798..0000000 --- a/euscanwww/djeuscan/models.py +++ /dev/null @@ -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 "" - ) - - 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 "" - ) - 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) diff --git a/euscanwww/djeuscan/processing/__init__.py b/euscanwww/djeuscan/processing/__init__.py deleted file mode 100644 index f1a00c6..0000000 --- a/euscanwww/djeuscan/processing/__init__.py +++ /dev/null @@ -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 diff --git a/euscanwww/djeuscan/processing/misc/__init__.py b/euscanwww/djeuscan/processing/misc/__init__.py deleted file mode 100644 index dc2bd59..0000000 --- a/euscanwww/djeuscan/processing/misc/__init__.py +++ /dev/null @@ -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 \ No newline at end of file diff --git a/euscanwww/djeuscan/processing/misc/regen_rrds.py b/euscanwww/djeuscan/processing/misc/regen_rrds.py deleted file mode 100644 index f578aa7..0000000 --- a/euscanwww/djeuscan/processing/misc/regen_rrds.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/processing/misc/stabilization_candidates.py b/euscanwww/djeuscan/processing/misc/stabilization_candidates.py deleted file mode 100644 index 1c8f165..0000000 --- a/euscanwww/djeuscan/processing/misc/stabilization_candidates.py +++ /dev/null @@ -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") diff --git a/euscanwww/djeuscan/processing/misc/update_counters.py b/euscanwww/djeuscan/processing/misc/update_counters.py deleted file mode 100644 index 392b7b5..0000000 --- a/euscanwww/djeuscan/processing/misc/update_counters.py +++ /dev/null @@ -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() diff --git a/euscanwww/djeuscan/processing/misc/update_portage_trees.py b/euscanwww/djeuscan/processing/misc/update_portage_trees.py deleted file mode 100644 index 55281a2..0000000 --- a/euscanwww/djeuscan/processing/misc/update_portage_trees.py +++ /dev/null @@ -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!") diff --git a/euscanwww/djeuscan/processing/scan/__init__.py b/euscanwww/djeuscan/processing/scan/__init__.py deleted file mode 100644 index 611ee4c..0000000 --- a/euscanwww/djeuscan/processing/scan/__init__.py +++ /dev/null @@ -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 diff --git a/euscanwww/djeuscan/processing/scan/scan_metadata.py b/euscanwww/djeuscan/processing/scan/scan_metadata.py deleted file mode 100644 index 22bad3f..0000000 --- a/euscanwww/djeuscan/processing/scan/scan_metadata.py +++ /dev/null @@ -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) diff --git a/euscanwww/djeuscan/processing/scan/scan_portage.py b/euscanwww/djeuscan/processing/scan/scan_portage.py deleted file mode 100644 index 857fce2..0000000 --- a/euscanwww/djeuscan/processing/scan/scan_portage.py +++ /dev/null @@ -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() diff --git a/euscanwww/djeuscan/processing/scan/scan_upstream.py b/euscanwww/djeuscan/processing/scan/scan_upstream.py deleted file mode 100644 index dc7ba1b..0000000 --- a/euscanwww/djeuscan/processing/scan/scan_upstream.py +++ /dev/null @@ -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.') diff --git a/euscanwww/djeuscan/tasks.py b/euscanwww/djeuscan/tasks.py deleted file mode 100644 index 1929593..0000000 --- a/euscanwww/djeuscan/tasks.py +++ /dev/null @@ -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 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, -] diff --git a/euscanwww/djeuscan/templates/_base.html b/euscanwww/djeuscan/templates/_base.html deleted file mode 100644 index dedc70e..0000000 --- a/euscanwww/djeuscan/templates/_base.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -{% load url from future %} -{% load timedelta %} - - - - {% block title %}euscan{% endblock %} - - {% block meta %} - - {% endblock %} - {% block css %} - - - {% endblock %} - {% block javascript %} - {% endblock %} - - - -
-
-
-
-
- {% block content %}{% endblock %} -
-
-
-
-
- -
-
-
-
- - - diff --git a/euscanwww/djeuscan/templates/admin/djcelery/taskstate/change_list.html b/euscanwww/djeuscan/templates/admin/djcelery/taskstate/change_list.html deleted file mode 100644 index db2680b..0000000 --- a/euscanwww/djeuscan/templates/admin/djcelery/taskstate/change_list.html +++ /dev/null @@ -1,81 +0,0 @@ -{% extends "admin/change_list.html" %} - -{% load url from future %} - -{% block object-tools %} -
- -
- Launch task -
- - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/_categories_table.html b/euscanwww/djeuscan/templates/euscan/_categories_table.html deleted file mode 100644 index d3571e2..0000000 --- a/euscanwww/djeuscan/templates/euscan/_categories_table.html +++ /dev/null @@ -1,34 +0,0 @@ -{% load url from future %} -{% load djeuscan_helpers %} - - - - - - - - - - {% if extras %} - - {% endif %} - - - - {% for category in categories %} - - - {% package_cols category %} - {% if extras %} - - {% endif %} - - {% endfor %} - -
CategorygentoooverlaysupstreamfreshnessGraphs
- {{ category.category }} - {% package_bar category %} - - - -
diff --git a/euscanwww/djeuscan/templates/euscan/_datatable.html b/euscanwww/djeuscan/templates/euscan/_datatable.html deleted file mode 100644 index 6af9ba9..0000000 --- a/euscanwww/djeuscan/templates/euscan/_datatable.html +++ /dev/null @@ -1,36 +0,0 @@ -{% extends "_base.html" %} - -{% block css %} -{{ block.super }} - -{% endblock %} - -{% block javascript %} -{{ block.super }} - - - - -{% endblock %} - -{% block menus %} -{{ block.super }} - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/_herds_table.html b/euscanwww/djeuscan/templates/euscan/_herds_table.html deleted file mode 100644 index 9f3f337..0000000 --- a/euscanwww/djeuscan/templates/euscan/_herds_table.html +++ /dev/null @@ -1,36 +0,0 @@ -{% load url from future %} -{% load djeuscan_helpers %} - - - - - - - - - - {% if extras %} - - {% endif %} - - - - {% for herd in herds %} - - - {% package_cols herd %} - {% if extras %} - - {% endif %} - - {% endfor %} - -
HerdgentoooverlaysupstreamfreshnessGraphs
- - {{ herd.herds__herd }} - - {% package_bar herd %} - - - -
diff --git a/euscanwww/djeuscan/templates/euscan/_maintainers_table.html b/euscanwww/djeuscan/templates/euscan/_maintainers_table.html deleted file mode 100644 index 665e3e8..0000000 --- a/euscanwww/djeuscan/templates/euscan/_maintainers_table.html +++ /dev/null @@ -1,42 +0,0 @@ -{% load url from future %} -{% load djeuscan_helpers %} - - - - - - - - - - {% if extras %} - - {% endif %} - - - - {% for maintainer in maintainers %} - - - {% package_cols maintainer %} - - {% if extras %} - - {% endif %} - - - {% endfor %} - -
MaintainergentoooverlaysupstreamfreshnessGraphs
- - {% if maintainer.maintainers__name != maintainer.maintainers__email %} - {{ maintainer.maintainers__name }} <{{ maintainer.maintainers__email }}> - {% else %} - {{ maintainer.maintainers__name }} - {% endif %} - - {% package_bar maintainer %} - - - -
diff --git a/euscanwww/djeuscan/templates/euscan/_overlays_table.html b/euscanwww/djeuscan/templates/euscan/_overlays_table.html deleted file mode 100644 index 68409ca..0000000 --- a/euscanwww/djeuscan/templates/euscan/_overlays_table.html +++ /dev/null @@ -1,20 +0,0 @@ -{% load url from future %} - - - - - - - - - {% for overlay in overlays %} - - - - {% endfor %} - -
Overlay
- - {{ overlay }} - -
diff --git a/euscanwww/djeuscan/templates/euscan/_package_bar.html b/euscanwww/djeuscan/templates/euscan/_package_bar.html deleted file mode 100644 index b9fc03f..0000000 --- a/euscanwww/djeuscan/templates/euscan/_package_bar.html +++ /dev/null @@ -1,9 +0,0 @@ -{% load mul %} -{% load sub %} -{% load div %} - -
-
-
-
-
diff --git a/euscanwww/djeuscan/templates/euscan/_package_cols.html b/euscanwww/djeuscan/templates/euscan/_package_cols.html deleted file mode 100644 index 540a8c1..0000000 --- a/euscanwww/djeuscan/templates/euscan/_package_cols.html +++ /dev/null @@ -1,30 +0,0 @@ -{% load djeuscan_helpers %} -{% load mul %} -{% load sub %} -{% load div %} - -{{ infos.n_packaged }} - -{% if infos.n_overlay == 0 or infos.n_overlay <= infos.n_packaged %} - -{% elif infos.n_overlay < infos.n_packaged %} - -{% else %} - -{% endif %} - {{ infos.n_overlay }} - - -{% if infos.n_versions == infos.n_packaged|add:infos.n_overlay %} - -{% elif infos.n_versions < infos.n_packaged|add:infos.n_overlay|mul:2 %} - -{% else %} - -{% endif %} -{{ infos.n_versions|sub:infos.n_packaged|sub:infos.n_overlay }} - - - - {{ infos.n_packaged|add:infos.n_overlay|div:infos.n_versions|mul:100|floatformat:"0" }} - diff --git a/euscanwww/djeuscan/templates/euscan/_package_details.html b/euscanwww/djeuscan/templates/euscan/_package_details.html deleted file mode 100644 index 64f8f3b..0000000 --- a/euscanwww/djeuscan/templates/euscan/_package_details.html +++ /dev/null @@ -1,125 +0,0 @@ -{% load djeuscan_helpers %} -{% load url from future %} - -
- {% if package.description %} -
Description
-
{{ package.description }}
- {% endif %} - {% if package.homepage %} -
Homepage
-
- {% for homepage in package.homepages %} - {{ homepage }}
- {% endfor %} -
- {% endif %} - {% if package.herds.all %} -
Herds
-
- {% for herd in package.herds.all %} -

- - {{ herd.herd }} - - <{{ herd.email }}> -

- {% endfor %} -
- {% endif %} - {% if package.maintainers.all %} -
Maintainers
-
- {% for maintainer in package.maintainers.all %} -

- {% if maintainer.name != maintainer.email %} - - {{ maintainer.name }} - - <{{ maintainer.email }}> - {% else %} - - {{ maintainer.email }} - - {% endif %} -

- {% endfor %} -
-
Q&A
-
- -
- {% endif %} - {% if packaged %} -
Packaged Versions
-
- -
- {% endif %} - {% if upstream %} -
Upstream versions
-
-
    - {% for version in upstream %} -
  • - upstream - - {% if version.vtype and not version.vtype|is_stable %} - unstable - {% endif %} - - {{ version.version }} - - {% for url in version.urls_list %} - {{ url }} - {% endfor %} - ({% if version.handler != "generic" %}{{ version.handler }} - {% endif %}{{ version.confidence }}%) -
  • - {% endfor %} -
-
- {% endif %} - {% include "euscan/_package_vlogs.html" %} - {% if log %} -
euscan log
-
-

Date: {{ log.datetime }}

-
{{ msg|ansi_to_html|safe }}
-
- {% endif %} -
diff --git a/euscanwww/djeuscan/templates/euscan/_package_vlogs.html b/euscanwww/djeuscan/templates/euscan/_package_vlogs.html deleted file mode 100644 index f67fb06..0000000 --- a/euscanwww/djeuscan/templates/euscan/_package_vlogs.html +++ /dev/null @@ -1,31 +0,0 @@ -{% load djeuscan_helpers %} - - {% if vlog %} -
Version history
-
-
    - {% for version in vlog %} - {% if version.action == version.VERSION_ADDED %} -
  • - {% else %} -
  • - {% endif %} - {% if version.overlay == "gentoo" %} - gentoo - {% elif version.overlay %} - overlays - {% else %} - upstream - {% endif %} - - {% if version.vtype and not version.vtype|is_stable %} - unstable - {% endif %} - - {{ version }} - {{ version.datetime }} - -
  • - {% endfor %} -
-
- {% endif %} diff --git a/euscanwww/djeuscan/templates/euscan/_packages.html b/euscanwww/djeuscan/templates/euscan/_packages.html deleted file mode 100644 index 4ecb9d3..0000000 --- a/euscanwww/djeuscan/templates/euscan/_packages.html +++ /dev/null @@ -1,62 +0,0 @@ -{% load djeuscan_helpers %} -{% load sub %} -{% load div %} -{% load mul %} -{% load djeuscan_helpers %} - -{% load url from future %} - - - - - - - - - - - - - - - - {% for package in packages %} - - - - - - {% package_cols package %} - - {% endfor %} - -
Packagegentoooverlaysupstreamgentoooverlaysupstreamfreshness
- - {{ package.category }}/{{ package.name }} - - {% package_bar package %} - - {% with vtype=package.last_version_gentoo.version|version_type %} - {% if not vtype|is_stable %} - unstable - {% endif %} - {% endwith %} - - {{ package.last_version_gentoo.version|truncatechars:15 }} - - {% with vtype=package.last_version_overlay.version|version_type %} - {% if not vtype|is_stable %} - unstable - {% endif %} - {% endwith %} - - {{ package.last_version_overlay.version|truncatechars:15 }} - - {% with vtype=package.last_version_upstream.version|version_type %} - {% if not vtype|is_stable %} - unstable - {% endif %} - {% endwith %} - - {{ package.last_version_upstream.version|truncatechars:15 }} -
diff --git a/euscanwww/djeuscan/templates/euscan/about.html b/euscanwww/djeuscan/templates/euscan/about.html deleted file mode 100644 index 7079cc2..0000000 --- a/euscanwww/djeuscan/templates/euscan/about.html +++ /dev/null @@ -1,41 +0,0 @@ -{% extends "_base.html" %} - -{% block content %} -

What's euscan ?

-

- Euscan is both a tool to check if an ebuild is outdated (app-portage/euscan) and a web interface. -

-

- 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. -

-

- euscan code source is available on github. -

-

- Original Gentoo artwork and logos copyright (C) Gentoo Foundation. - Design inspired by (stolen from) gentoo.org and bugs.gentoo.org. -

-

- This site is not an official Gentoo website. -

- -

- Copyright (C) 2011 Corentin Chary -

- -

- Powered by: - - Linux Kernel - - - Gentoo Linux - - - Django - - - Python - -

-{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/api.html b/euscanwww/djeuscan/templates/euscan/api.html deleted file mode 100644 index e3f5ce3..0000000 --- a/euscanwww/djeuscan/templates/euscan/api.html +++ /dev/null @@ -1,22 +0,0 @@ -{% extends "_base.html" %} - -{% load url from future %} - -{% block content %} -

API

- - - -

Formats: xml, yaml and json

- -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/categories.html b/euscanwww/djeuscan/templates/euscan/categories.html deleted file mode 100644 index 93a81f6..0000000 --- a/euscanwww/djeuscan/templates/euscan/categories.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load djeuscan_helpers %} -{% load url from future %} - -{% block title %} -{{ block.super }} - categories -{% endblock %} - -{% block content %} -

Categories

- -{% categories_table categories request.GET.extras %} - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/category.html b/euscanwww/djeuscan/templates/euscan/category.html deleted file mode 100644 index 22a8cec..0000000 --- a/euscanwww/djeuscan/templates/euscan/category.html +++ /dev/null @@ -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 }} -
  • - feed - - {{ category|truncatechars:15 }} - -
  • -{% endblock %} - -{% block content %} -

    - Category: {{ category }} - - {% if user.is_authenticated %} - - {% favourite_buttons "category" category %} - - {% endif %} -

    - -

    {{ category.description }}

    - -{% packages packages %} - -

    Statistics

    -

    Current statistics

    -

    - pie versions - pie packages -

    - -

    All Time

    -

    - versions weekly - versions monthly -

    - -

    - packages weekly - packages monthly -

    - - -{% endblock %} - -{% block menus %} -{{ block.super }} - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/config.html b/euscanwww/djeuscan/templates/euscan/config.html deleted file mode 100644 index 0990eed..0000000 --- a/euscanwww/djeuscan/templates/euscan/config.html +++ /dev/null @@ -1,124 +0,0 @@ -{% extends "_base.html" %} - -{% block content %} -

    Server configuration

    - - - - - {% for key, value in make_conf.items %} - - - - - {% endfor %} -
    -

    make.conf

    -
    {{ key }}{{ value }}
    - -
    - - - - {% for key, value in layman_repos.items %} - - - - - {% endfor %} -
    -

    Available overlays

    -
    {{ key }}{{ value.description }}
    - -
    - - - - {% for key, value in euscan_config.CONFIG.items %} - - - - - {% endfor %} -
    -

    Euscan config

    -
    {{ key }}{{ value }}
    - -
    - - - - {% for item in euscan_config.BLACKLIST_VERSIONS %} - - - - {% endfor %} -
    -

    Versions blacklist

    -
    {{ item }}
    - -
    - - - - {% for item in euscan_config.BLACKLIST_PACKAGES %} - - - - {% endfor %} -
    -

    Packages blacklist

    -
    {{ item }}
    - -
    - - - - {% for item in euscan_config.SCANDIR_BLACKLIST_URLS %} - - - - {% endfor %} -
    -

    Scandir blacklist

    -
    {{ item }}
    - -
    - - - - {% for item in euscan_config.BRUTEFORCE_BLACKLIST_PACKAGES %} - - - - {% endfor %} -
    -

    Bruteforce packages blacklist

    -
    {{ item }}
    - -
    - - - - {% for item in euscan_config.BRUTEFORCE_BLACKLIST_URLS %} - - - - {% endfor %} -
    -

    Bruteforce urls blacklist

    -
    {{ item }}
    - -
    - - - - {% for item in euscan_config.ROBOTS_TXT_BLACKLIST_DOMAINS %} - - - - {% endfor %} -
    -

    Robots.txt domain blacklist

    -
    {{ item }}
    -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/feeds.html b/euscanwww/djeuscan/templates/euscan/feeds.html deleted file mode 100644 index 280131b..0000000 --- a/euscanwww/djeuscan/templates/euscan/feeds.html +++ /dev/null @@ -1,30 +0,0 @@ -{% extends "_base.html" %} - -{% load url from future %} - -{% block content %} -

    Feeds

    - -
    -

    - 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. -

    -

    Options

    -
      -
    • portage_info: Get info about portage updates (default: on)
    • -
    • upstream_info: Get info about upstream updates (default: on)
    • -
    • show_adds: Show version bumps (default: on)
    • -
    • show_removals: Show removals (default: on)
    • -
    • ignore_pre: Ignore unstable releases (default: off)
    • -
    • ignore_pre_if_stable: Ignore unstable releases only if current release is stable (default: off)
    • -
    - -

    Usage examples

    - -
    - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/herd.html b/euscanwww/djeuscan/templates/euscan/herd.html deleted file mode 100644 index afc187d..0000000 --- a/euscanwww/djeuscan/templates/euscan/herd.html +++ /dev/null @@ -1,64 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load url from future %} -{% load djeuscan_helpers %} -{% load euscan_accounts_helpers %} - -{% block title %} -{{ block.super }} - Herd: {{ herd.herd }} -{% endblock %} - -{% block menu_feed %} -{{ block.super }} -
  • - feed - - {{ herd.herd|truncatechars:15 }} - -
  • -{% endblock %} - -{% block content %} -

    - Herd: {{ herd.herd }} - {% if user.is_authenticated %} - - {% favourite_buttons "herd" herd.herd %} - - {% endif %} - -

    -{% packages packages %} - -

    Statistics

    -

    Current statistics

    -

    - pie versions - pie packages -

    - -

    All Time

    -

    - versions weekly - versions monthly -

    -

    - packages weekly - packages monthly -

    - - -{% endblock %} - -{% block menus %} -{{ block.super }} - - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/herds.html b/euscanwww/djeuscan/templates/euscan/herds.html deleted file mode 100644 index ff04497..0000000 --- a/euscanwww/djeuscan/templates/euscan/herds.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load djeuscan_helpers %} -{% load url from future %} - -{% block title %} -{{ block.super }} - herds -{% endblock %} - -{% block content %} -

    Herds

    - -{% herds_table herds request.GET.extras %} - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/index.html b/euscanwww/djeuscan/templates/euscan/index.html deleted file mode 100644 index bd3e19f..0000000 --- a/euscanwww/djeuscan/templates/euscan/index.html +++ /dev/null @@ -1,27 +0,0 @@ -{% extends "_base.html" %} - -{% load timedelta %} - -{% block content %} -

    What's euscan ?

    -

    -Euscan is both a tool to check if an ebuild is outdated (app-portage/euscan) -and a web interface. -

    -

    -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. -

    - -

    Overview

    -
      -
    • Packages: {{ n_packages }}
    • -
    • Versions: {{ n_packaged }}
    • -
    • Versions not-packaged: {{ n_upstream }}
    • -
    • Herds: {{ n_herds }}
    • -
    • Maintainers: {{ n_maintainers }}
    • - {% if last_scan %} -
    • Last scan: {{ last_scan }} ({{ last_scan|timedelta }})
    • - {% endif %} -
    -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/maintainer.html b/euscanwww/djeuscan/templates/euscan/maintainer.html deleted file mode 100644 index 82ed52b..0000000 --- a/euscanwww/djeuscan/templates/euscan/maintainer.html +++ /dev/null @@ -1,65 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load url from future %} -{% load djeuscan_helpers %} -{% load euscan_accounts_helpers %} - -{% block title %} -{{ block.super }} - Maintainer: {{ maintainer.name }} -{% endblock %} - -{% block menu_feed %} -{{ block.super }} -
  • - feed - - {{ maintainer.name|truncatechars:15 }} - -
  • -{% endblock %} - -{% block content %} -

    - Maintainer: {{ maintainer.name }} <{{ maintainer.email }}> - {% if user.is_authenticated %} - - {% favourite_buttons "maintainer" maintainer.email %} - - {% endif %} -

    - -{% packages packages %} - -

    Statistics

    -

    Current statistics

    -

    - pie versions - pie packages -

    - -

    All Time

    -

    - version weekly - versions monthly -

    - -

    - packages weekly - packages monthly -

    - - -{% endblock %} - -{% block menus %} -{{ block.super }} - - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/maintainers.html b/euscanwww/djeuscan/templates/euscan/maintainers.html deleted file mode 100644 index 1514231..0000000 --- a/euscanwww/djeuscan/templates/euscan/maintainers.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load djeuscan_helpers %} -{% load url from future %} - -{% block title %} -{{ block.super }} - maintainers -{% endblock %} - -{% block content %} -

    Maintainers

    - -{% maintainers_table maintainers request.GET.extras %} - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/overlay.html b/euscanwww/djeuscan/templates/euscan/overlay.html deleted file mode 100644 index 394729f..0000000 --- a/euscanwww/djeuscan/templates/euscan/overlay.html +++ /dev/null @@ -1,28 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load url from future %} -{% load djeuscan_helpers %} -{% load euscan_accounts_helpers %} - -{% block title %} -{{ block.super }} - Overlay: {{ overlay }} -{% endblock %} - -{% block content %} -

    - Overlay: {{ overlay }} - {% if user.is_authenticated %} - - {% favourite_buttons "overlay" overlay %} - - {% endif %} - -

    - -

    {{ overlay.description }}

    -

    Homepage

    - -{% packages packages %} - - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/overlays.html b/euscanwww/djeuscan/templates/euscan/overlays.html deleted file mode 100644 index 8bdafe4..0000000 --- a/euscanwww/djeuscan/templates/euscan/overlays.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load djeuscan_helpers %} -{% load url from future %} - -{% block title %} -{{ block.super }} - overlays -{% endblock %} - -{% block content %} -

    Overlays

    - -{% overlays_table overlays %} - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/package.html b/euscanwww/djeuscan/templates/euscan/package.html deleted file mode 100644 index 874ab52..0000000 --- a/euscanwww/djeuscan/templates/euscan/package.html +++ /dev/null @@ -1,89 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load url from future %} -{% load sub %} -{% load euscan_accounts_helpers %} - -{% block meta %} -{{ block.super }} - -{% endblock %} - -{% block menu_feed %} -{{ block.super }} -
  • - feed - - {{ package|truncatechars:15 }} - -
  • -{% endblock %} - -{% block title %} -{{ block.super }} - {{ package.category }}/{{ package.name }} -{% endblock %} - -{% block content %} - -
    -

    A refresh request is in progress, please wait...

    -

    Queue position: {{ refresh_pos }}

    -
    - -

    - {{ package.category }}/{{ package.name }} - - {% if user.is_authenticated %} -
    -
    - - -
    - - - {% favourite_buttons "package" package.category package.name %} -
    - {% endif %} -

    - -{% include "euscan/_package_details.html" %} - -
    - -{% if user.is_authenticated %} - - - Report problems - - -{% endif %} - - - - - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/problem.html b/euscanwww/djeuscan/templates/euscan/problem.html deleted file mode 100644 index 828b7ab..0000000 --- a/euscanwww/djeuscan/templates/euscan/problem.html +++ /dev/null @@ -1,57 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load sub %} -{% load djeuscan_helpers %} -{% load url from future %} - -{% block title %} -{{ block.super }} - Report Problem: {{ package.category }}/{{ package.name }} -{% endblock %} - -{% block content %} - -{% if thanks_for_reporting %} -
    - Thanks! Your report has been sent to admins -
    -{% endif %} - -

    - Report Problem: {{ package.category }}/{{ package.name }} -

    - -{% include "euscan/_package_details.html" %} -
    -
    -
    -
    - -
    - {{ form.version }} - {{ form.version.errors.as_text }} -
    -
    -
    - -
    - {{ form.subject }} - {{ form.subject.errors.as_text }} -
    -
    -
    - -
    - {{ form.message }} - {{ form.message.errors.as_text }} -
    -
    - -
    -
    - -
    -
    -
    -
    - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/statistics.html b/euscanwww/djeuscan/templates/euscan/statistics.html deleted file mode 100644 index 3179e56..0000000 --- a/euscanwww/djeuscan/templates/euscan/statistics.html +++ /dev/null @@ -1,72 +0,0 @@ -{% extends "_base.html" %} - -{% load url from future %} - -{% block css %} -{{ block.super }} - -{% endblock %} - - -{% block javascript %} -{{ block.super }} - - - - -{% endblock %} - - -{% block content %} -

    Statistics

    - -
    - -

    Current statistics

    -pie versions -pie packages - -

    All time statistics

    - -packages weekly -packages monthly - -versions weekly -versions monthly - -
    - -

    Handlers

    - - - - - - - - - - {% for handler in handlers %} - - - - - - {% endfor %} - -
    Handler# of found versionsAverage confidence
    - - {{ handler.handler }} - - {{ handler.n }}{{ handler.avg_conf|floatformat:1 }}
    - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/statistics_handler.html b/euscanwww/djeuscan/templates/euscan/statistics_handler.html deleted file mode 100644 index ff073e3..0000000 --- a/euscanwww/djeuscan/templates/euscan/statistics_handler.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load url from future %} -{% load djeuscan_helpers %} - -{% block title %} -{{ block.super }} - Handler: {{ handler }} -{% endblock %} - -{% block content %} -

    - Handler: {{ handler }} -

    -{% packages packages %} - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/world.html b/euscanwww/djeuscan/templates/euscan/world.html deleted file mode 100644 index 6ba2791..0000000 --- a/euscanwww/djeuscan/templates/euscan/world.html +++ /dev/null @@ -1,30 +0,0 @@ -{% extends "_base.html" %} - -{% load url from future %} - -{% block title %} -{{ block.super }} - World scan -{% endblock %} - -{% block content %} -

    Scan your packages

    - -
    - -

    Import your /var/lib/portage/world file

    - -
    {% csrf_token %} -{{ world_form.as_p }} - -
    - -
    - -

    Or just list some packages

    - -
    {% csrf_token %} -{{ packages_form.as_p }} - -
    - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/euscan/world_scan.html b/euscanwww/djeuscan/templates/euscan/world_scan.html deleted file mode 100644 index fa6d7b0..0000000 --- a/euscanwww/djeuscan/templates/euscan/world_scan.html +++ /dev/null @@ -1,41 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load url from future %} -{% load djeuscan_helpers %} -{% load euscan_accounts_helpers %} - -{% block title %} -{{ block.super }} - World Scan -{% endblock %} - -{% block menu_feed %} -{{ block.super }} -
  • - feed - - World scan feed - -
  • -{% endblock %} - - -{% block content %} -

    - World scan: - {% if user.is_authenticated %} - - {% favourite_buttons "world" %} - - {% endif %} -

    - -{% packages packages %} - - - - - -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/_registration_base.html b/euscanwww/djeuscan/templates/registration/_registration_base.html deleted file mode 100644 index 9789436..0000000 --- a/euscanwww/djeuscan/templates/registration/_registration_base.html +++ /dev/null @@ -1 +0,0 @@ -{% extends "_base.html" %} diff --git a/euscanwww/djeuscan/templates/registration/activate.html b/euscanwww/djeuscan/templates/registration/activate.html deleted file mode 100644 index 2e47513..0000000 --- a/euscanwww/djeuscan/templates/registration/activate.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends "registration/_registration_base.html" %} - -{% block title %}{% if account %}Activation complete{% else %}Activation problem{% endif %}{% endblock %} - -{% block content %} - {% if account %} - Thanks {{ account }}, activation complete! You may now login - using the username and password you set at registration. - {% else %} - Oops – it seems that your activation key is invalid. - Please check the url again. - {% endif %} -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/activation_complete.html b/euscanwww/djeuscan/templates/registration/activation_complete.html deleted file mode 100644 index 9d53ca9..0000000 --- a/euscanwww/djeuscan/templates/registration/activation_complete.html +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "registration/_registration_base.html" %} -{% block title %}Activation complete{% endblock %} -{% block content %} - Thanks, activation complete! You may now login - using the username and password you set at registration. -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/activation_email.txt b/euscanwww/djeuscan/templates/registration/activation_email.txt deleted file mode 100644 index 55b583b..0000000 --- a/euscanwww/djeuscan/templates/registration/activation_email.txt +++ /dev/null @@ -1,11 +0,0 @@ -You (or someone pretending to be you) have asked to register an account at -{{ site.name }}. If this wasn't you, please ignore this email -and your address will be removed from our records. - -To activate this account, please click the following link within the next -{{ expiration_days }} days: - -http://{{site.domain}}{% url 'registration_activate' activation_key=activation_key %} - -Sincerely, -{{ site.name }} Management diff --git a/euscanwww/djeuscan/templates/registration/activation_email_subject.txt b/euscanwww/djeuscan/templates/registration/activation_email_subject.txt deleted file mode 100644 index 13912aa..0000000 --- a/euscanwww/djeuscan/templates/registration/activation_email_subject.txt +++ /dev/null @@ -1 +0,0 @@ -Account registration for {{ site.name }} diff --git a/euscanwww/djeuscan/templates/registration/login.html b/euscanwww/djeuscan/templates/registration/login.html deleted file mode 100644 index 194dd04..0000000 --- a/euscanwww/djeuscan/templates/registration/login.html +++ /dev/null @@ -1,39 +0,0 @@ -{% extends "registration/_registration_base.html" %} -{% load url from future %} -{% load i18n %} - -{% block content %} - - {% if form.errors %} -
    - Error: Your username and password didn't match. Please try again. -
    - {% endif %} - -

    - Login -

    - -
    - {% csrf_token %} - - - - - - - - - - - - - -
    {{ form.username.label_tag }}{{ form.username }}
    {{ form.password.label_tag }}{{ form.password }}
    - Forgot password - - -
    - -
    -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/password_change_form.html b/euscanwww/djeuscan/templates/registration/password_change_form.html deleted file mode 100644 index c8ab089..0000000 --- a/euscanwww/djeuscan/templates/registration/password_change_form.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends "registration/_registration_base.html" %} - -{% load url from future %} - -{% block title %}Change password{% endblock %} - -{% block content %} -

    - Change password -

    - -
    - {% csrf_token %} - - {{ form }} - - - - -
    - -
    -
    -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/password_reset_complete.html b/euscanwww/djeuscan/templates/registration/password_reset_complete.html deleted file mode 100644 index 932dabf..0000000 --- a/euscanwww/djeuscan/templates/registration/password_reset_complete.html +++ /dev/null @@ -1,7 +0,0 @@ -{% extends "registration/_registration_base.html" %} - -{% block title %}Password reset complete{% endblock %} - -{% block content %} - Your password has been reset! You may now log in. -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/password_reset_confirm.html b/euscanwww/djeuscan/templates/registration/password_reset_confirm.html deleted file mode 100644 index 43aefec..0000000 --- a/euscanwww/djeuscan/templates/registration/password_reset_confirm.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "registration/_registration_base.html" %} -{% block title %}Confirm password reset{% endblock %} - -{% block content %} -

    - Reset password -

    - -

    - Enter your new password below to reset your password: -

    -
    {% csrf_token %} - - {{ form.as_table }} - - - - -
    -
    -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/password_reset_done.html b/euscanwww/djeuscan/templates/registration/password_reset_done.html deleted file mode 100644 index a263a5f..0000000 --- a/euscanwww/djeuscan/templates/registration/password_reset_done.html +++ /dev/null @@ -1,10 +0,0 @@ -{% extends "registration/_registration_base.html" %} - -{% block title %}Password reset{% endblock %} - -{% block content %} -

    - We have sent you an email with a link to reset your password. Please check - your email and click the link to continue. -

    -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/password_reset_email.html b/euscanwww/djeuscan/templates/registration/password_reset_email.html deleted file mode 100644 index 54fefff..0000000 --- a/euscanwww/djeuscan/templates/registration/password_reset_email.html +++ /dev/null @@ -1,16 +0,0 @@ -Greetings {% if user.get_full_name %}{{ user.get_full_name }}{% else %}{{ user }}{% endif %}, - -You are receiving this email because you (or someone pretending to be you) -requested that your password be reset on the {{ domain }} site. If you do not -wish to reset your password, please ignore this message. - -To reset your password, please click the following link, or copy and paste it -into your web browser: - -{{ protocol }}://{{ domain }}{% url auth_password_reset_confirm uid token %} - -Your username, in case you've forgotten: {{ user.username }} - - -Best regards, -{{ site_name }} Management diff --git a/euscanwww/djeuscan/templates/registration/password_reset_form.html b/euscanwww/djeuscan/templates/registration/password_reset_form.html deleted file mode 100644 index 7014401..0000000 --- a/euscanwww/djeuscan/templates/registration/password_reset_form.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends "registration/_registration_base.html" %} - -{% block title %}Reset password{% endblock %} - -{% block content %} -

    - Reset password -

    - -

    - Forgot your password? Enter your email in the form below and we'll send you - instructions for creating a new one. -

    - -
    {% csrf_token %} - - {{ form }} - - - - -
    -
    -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/registration_complete.html b/euscanwww/djeuscan/templates/registration/registration_complete.html deleted file mode 100644 index ae8dfcb..0000000 --- a/euscanwww/djeuscan/templates/registration/registration_complete.html +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "registration/_registration_base.html" %} -{% block title %}Activation email sent{% endblock %} - -{% block content %} - An activation email has been sent. Please check your email and click on the link to activate your account. -{% endblock %} diff --git a/euscanwww/djeuscan/templates/registration/registration_form.html b/euscanwww/djeuscan/templates/registration/registration_form.html deleted file mode 100644 index c7858f4..0000000 --- a/euscanwww/djeuscan/templates/registration/registration_form.html +++ /dev/null @@ -1,23 +0,0 @@ -{% extends "registration/_registration_base.html" %} - -{% block title %} - Register for an account -{% endblock %} - -{% block content %} -

    - Register -

    - -
    {% csrf_token %} - - {{ form }} - - - - -
    - -
    -
    -{% endblock %} diff --git a/euscanwww/djeuscan/templatetags/__init__.py b/euscanwww/djeuscan/templatetags/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/djeuscan/templatetags/div.py b/euscanwww/djeuscan/templatetags/div.py deleted file mode 100644 index d9eb880..0000000 --- a/euscanwww/djeuscan/templatetags/div.py +++ /dev/null @@ -1,12 +0,0 @@ -from django import template - -register = template.Library() - - -def div(value, arg=None): - try: - return float(value) / float(arg) - except ZeroDivisionError: - return 0 - -register.filter('div', div) diff --git a/euscanwww/djeuscan/templatetags/djeuscan_helpers.py b/euscanwww/djeuscan/templatetags/djeuscan_helpers.py deleted file mode 100644 index 427b421..0000000 --- a/euscanwww/djeuscan/templatetags/djeuscan_helpers.py +++ /dev/null @@ -1,76 +0,0 @@ -from django import template -from django.conf import settings - -from euscan.version import is_version_type_stable, get_version_type - -register = template.Library() - - -@register.inclusion_tag('euscan/_packages.html', takes_context=True) -def packages(context, pkgs): - context['packages'] = pkgs - return context - - -@register.inclusion_tag('euscan/_package_cols.html', takes_context=True) -def package_cols(context, infos): - context['infos'] = infos - return context - - -@register.inclusion_tag('euscan/_package_bar.html', takes_context=True) -def package_bar(context, infos): - context['infos'] = infos - return context - - -@register.inclusion_tag('euscan/_categories_table.html') -def categories_table(categories, extras=False): - return { - "categories": categories, - "extras": extras, - "STATIC_URL": settings.STATIC_URL, - } - - -@register.inclusion_tag('euscan/_herds_table.html') -def herds_table(herds, extras=False): - return { - "herds": herds, - "extras": extras, - "STATIC_URL": settings.STATIC_URL, - } - - -@register.inclusion_tag('euscan/_maintainers_table.html') -def maintainers_table(maintainers, extras=False): - return { - "maintainers": maintainers, - "extras": extras, - "STATIC_URL": settings.STATIC_URL, - } - - -@register.inclusion_tag('euscan/_overlays_table.html') -def overlays_table(overlays): - return { - "overlays": overlays, - "STATIC_URL": settings.STATIC_URL, - } - - -@register.filter -def is_stable(version_type): - return is_version_type_stable(version_type) - - -@register.filter -def version_type(version): - return get_version_type(version) - - -@register.filter -def ansi_to_html(text): - from ansi2html import Ansi2HTMLConverter - conv = Ansi2HTMLConverter(inline=True, linkify=True) - return conv.convert(text, full=False) diff --git a/euscanwww/djeuscan/templatetags/math_.py b/euscanwww/djeuscan/templatetags/math_.py deleted file mode 100644 index d9250b3..0000000 --- a/euscanwww/djeuscan/templatetags/math_.py +++ /dev/null @@ -1,35 +0,0 @@ -from django.template import Library -import math - -register = Library() - -# taken from http://lybniz2.sourceforge.net/safeeval.html -# make a list of safe functions -math_safe_list = ['acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', - 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', - 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', - 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh'] - -# use the list to filter the local namespace -math_safe_dict = dict([(k, getattr(math, k)) for k in math_safe_list]) - -# add any needed builtins back in. -math_safe_dict['abs'] = abs - - -@register.filter('math') -def math_(lopr, expr): - """Evals a math expression and returns it's value. - - "$1" is a placeholder. Insert "$1" in the expression where the value is - to be used. All math functions such as abs, sin, cos, floor are supported. - Example, - a. You will be redirected in {{ seconds|math:"$1 / 60.0" }} minutes - b. Square of {{ x }} is {{ x|math:"$1 * $1" }} - c. Square root of {{ x }} is {{ x|math:"sqrt($1)" }} - d. Given x = {{ x }}, (2 + x) * 6 = {{ x|math:"(2 + $1) * 6" }} - """ - if lopr: - return eval(expr.replace('$1', str(lopr)), {"__builtins__": None}, - math_safe_dict) - return '' diff --git a/euscanwww/djeuscan/templatetags/mul.py b/euscanwww/djeuscan/templatetags/mul.py deleted file mode 100644 index dbad300..0000000 --- a/euscanwww/djeuscan/templatetags/mul.py +++ /dev/null @@ -1,9 +0,0 @@ -from django import template - -register = template.Library() - - -def mul(value, arg=None): - return value * arg - -register.filter('mul', mul) diff --git a/euscanwww/djeuscan/templatetags/sub.py b/euscanwww/djeuscan/templatetags/sub.py deleted file mode 100644 index 47f52a1..0000000 --- a/euscanwww/djeuscan/templatetags/sub.py +++ /dev/null @@ -1,9 +0,0 @@ -from django import template - -register = template.Library() - - -def sub(value, arg=None): - return value - arg - -register.filter('sub', sub) diff --git a/euscanwww/djeuscan/templatetags/timedelta.py b/euscanwww/djeuscan/templatetags/timedelta.py deleted file mode 100644 index e7656ae..0000000 --- a/euscanwww/djeuscan/templatetags/timedelta.py +++ /dev/null @@ -1,24 +0,0 @@ -from django import template -from django.utils.timesince import timesince -from django.conf import settings -from django.utils.timezone import make_aware, get_default_timezone -from datetime import datetime - -register = template.Library() - - -def timedelta(value, arg=None): - if not value: - return '' - if arg: - cmp = arg - else: - cmp = datetime.now() - if settings.USE_TZ: - cmp = make_aware(cmp, get_default_timezone()) - if value > cmp: - return "in %s" % timesince(cmp, value) - else: - return "%s ago" % timesince(value, cmp) - -register.filter('timedelta', timedelta) diff --git a/euscanwww/djeuscan/tests/__init__.py b/euscanwww/djeuscan/tests/__init__.py deleted file mode 100644 index 78a1082..0000000 --- a/euscanwww/djeuscan/tests/__init__.py +++ /dev/null @@ -1,57 +0,0 @@ -from urllib import urlencode - -from django.test import TestCase -from django.test.client import Client -from django.core.urlresolvers import reverse - -from djeuscan.tests.euscan_factory import UserFactory - - -class SystemTestCase(TestCase): - """ - Base class for system tests - """ - fixtures = ["test_data.json"] - - def setUp(self): - self.client = Client() - - def get(self, url_name, *args, **kwargs): - param = kwargs.pop("param", None) - if param: - url = "%s?%s" % (reverse(url_name, args=args, kwargs=kwargs), - urlencode(param)) - else: - url = reverse(url_name, args=args, kwargs=kwargs) - return self.client.get(url) - - def post(self, url_name, *args, **kwargs): - data = kwargs.pop("data", {}) - url = reverse(url_name, args=args, kwargs=kwargs) - return self.client.post(url, data) - - def login(self): - user = UserFactory.build() - user.set_password("pass") - user.save() - return Login(self, user.username, "pass") - - -class Login(object): - def __init__(self, testcase, user, password): - self.testcase = testcase - success = testcase.client.login(username=user, password=password) - self.testcase.assertTrue( - success, - "login with username=%r, password=%r failed" % (user, password) - ) - - def __enter__(self): - pass - - def __exit__(self, *args): - self.testcase.client.logout() - -from test_models import * -from test_views import * -from test_charts import * diff --git a/euscanwww/djeuscan/tests/euscan_factory.py b/euscanwww/djeuscan/tests/euscan_factory.py deleted file mode 100644 index 0a90874..0000000 --- a/euscanwww/djeuscan/tests/euscan_factory.py +++ /dev/null @@ -1,147 +0,0 @@ -import random -from string import letters -from datetime import datetime -from collections import defaultdict - -from django.contrib.auth.models import User -from django.db import IntegrityError - -import factory - -from djeuscan.models import Herd, Maintainer, Package, Version, EuscanResult, \ - Category, Overlay - - -class UserFactory(factory.Factory): - FACTORY_FOR = User - - username = factory.Sequence(lambda n: 'user' + n) - - -def random_string(length=None): - if length is None: - length = random.randint(1, 30) - return "".join([random.choice(letters) for _ in range(length)]) - - -class HerdFactory(factory.Factory): - FACTORY_FOR = Herd - - herd = factory.LazyAttribute(lambda a: random_string()) - email = factory.LazyAttribute(lambda a: "%s@example.com" % a.herd) - - -class MaintainerFactory(factory.Factory): - FACTORY_FOR = Maintainer - - name = factory.LazyAttribute(lambda a: random_string()) - email = factory.LazyAttribute(lambda a: "%s@example.com" % a.name) - - -class CategoryFactory(factory.Factory): - FACTORY_FOR = Category - - name = factory.LazyAttribute(lambda a: random_string()) - - -class OverlayFactory(factory.Factory): - FACTORY_FOR = Overlay - - name = factory.LazyAttribute(lambda a: random_string()) - - -class PackageFactory(factory.Factory): - FACTORY_FOR = Package - - category = factory.LazyAttribute( - lambda a: "%s-%s" % (random_string(), random_string()) - ) - name = factory.LazyAttribute(lambda a: random_string()) - description = "This is a test package" - homepage = "http://testpackage.com" - - @classmethod - def _prepare(cls, create, **kwargs): - package = super(PackageFactory, cls)._prepare(create, **kwargs) - category = kwargs.pop('category', None) - if create: - CategoryFactory.create(name=category) - else: - CategoryFactory.build(name=category) - return package - - -class VersionFactory(factory.Factory): - FACTORY_FOR = Version - - package = factory.LazyAttribute(lambda a: PackageFactory()) - slot = "1" - revision = "1" - version = "0.1" - packaged = True - overlay = "gentoo" - urls = "http://packageurl.com" - - @classmethod - def _prepare(cls, create, **kwargs): - version = super(VersionFactory, cls)._prepare(create, **kwargs) - overlay = kwargs.pop('overlay', None) - try: - if create: - OverlayFactory.create(name=overlay) - else: - OverlayFactory.build(name=overlay) - except IntegrityError: - pass - return version - - -class EuscanResultFactory(factory.Factory): - FACTORY_FOR = EuscanResult - - package = factory.LazyAttribute(lambda a: PackageFactory()) - datetime = datetime.now() - result = "this is the result" - - -def setup_maintainers(): - maintainers = [MaintainerFactory.create() for _ in range(10)] - packages = [] - for i in range(0, 10, 2): - p = PackageFactory.create() - p.maintainers.add(maintainers[i]) - p.maintainers.add(maintainers[i + 1]) - packages.append(p) - return maintainers, packages - - -def setup_categories(): - packages = [PackageFactory.create() for _ in range(10)] - categories = [p.category for p in packages] - return categories, packages - - -def setup_herds(): - herds = [HerdFactory.create() for _ in range(10)] - packages = [] - - for i in range(0, 10, 2): - p = PackageFactory.create() - p.herds.add(herds[i]) - p.herds.add(herds[i + 1]) - packages.append(p) - return herds, packages - - -def setup_overlays(): - overlays = [random_string() for _ in range(3)] - packages = defaultdict(list) - - for _ in range(3): - package = PackageFactory.create() - for overlay in overlays: - VersionFactory.create(package=package, - overlay=overlay) - packages[overlay].append(package) - - return overlays, packages diff --git a/euscanwww/djeuscan/tests/test_charts.py b/euscanwww/djeuscan/tests/test_charts.py deleted file mode 100644 index e50dd8b..0000000 --- a/euscanwww/djeuscan/tests/test_charts.py +++ /dev/null @@ -1,102 +0,0 @@ -from djeuscan.tests import SystemTestCase -from djeuscan.tests.euscan_factory import MaintainerFactory, HerdFactory, \ - PackageFactory - - -class ChartTests(SystemTestCase): - """ - Test charts - """ - - url = "chart" - args = [] - kwargs = {} - - def test_statistics(self): - response = self.get("statistics") - self.assertEqual(response.status_code, 200) - - def test_pie_versions(self): - response = self.get(self.url, chart="pie-versions", - *self.args, **self.kwargs) - self.assertEqual(response.status_code, 200) - - def test_pie_packages(self): - response = self.get(self.url, chart="pie-packages", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - def test_packages(self): - response = self.get(self.url, chart="packages", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - def test_packages_options(self): - response = self.get(self.url, chart="packages-small", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - response = self.get(self.url, chart="packages-weekly", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - response = self.get(self.url, chart="packages-monthly", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - response = self.get(self.url, chart="packages-yearly", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - def test_packages_option_incorrect(self): - response = self.get(self.url, chart="packages-trololol", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 404) - - def test_versions(self): - response = self.get(self.url, chart="versions", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - def test_versions_options(self): - response = self.get(self.url, chart="versions-small", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - response = self.get(self.url, chart="versions-weekly", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - response = self.get(self.url, chart="versions-monthly", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - response = self.get(self.url, chart="versions-yearly", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 200) - - def test_versions_option_incorrect(self): - response = self.get(self.url, chart="versions-trololol", *self.args, - **self.kwargs) - self.assertEqual(response.status_code, 404) - - -class CategoryChartTests(ChartTests): - def setUp(self): - super(CategoryChartTests, self).setUp() - self.url = "chart_category" - self.kwargs = {"category": PackageFactory.create().category} - - -class HerdChartTests(ChartTests): - def setUp(self): - super(HerdChartTests, self).setUp() - self.url = "chart_herd" - self.kwargs = {"herd": HerdFactory.create().herd} - - -class MaintainerChartTests(ChartTests): - def setUp(self): - super(MaintainerChartTests, self).setUp() - self.url = "chart_maintainer" - self.kwargs = {"maintainer_id": MaintainerFactory.create().pk} diff --git a/euscanwww/djeuscan/tests/test_models.py b/euscanwww/djeuscan/tests/test_models.py deleted file mode 100644 index 3dfb837..0000000 --- a/euscanwww/djeuscan/tests/test_models.py +++ /dev/null @@ -1,105 +0,0 @@ -""" -tests for models -""" - -from datetime import datetime - -from django.test import TestCase -from django.db import IntegrityError -from django.core.exceptions import ValidationError -from django.utils.timezone import utc - -from djeuscan.models import Package, EuscanResult -from djeuscan.tests.euscan_factory import VersionFactory, PackageFactory, \ - EuscanResultFactory, setup_maintainers, setup_herds, setup_categories, \ - setup_overlays - - -class VersionModelTests(TestCase): - def test_creation(self): - package = PackageFactory.build() - version = VersionFactory.build(package=package) - self.assertEqual(version.package, package) - - def test_not_allowed_creation(self): - package = PackageFactory.create() - VersionFactory.create(package=package) - - with self.assertRaises((IntegrityError, ValidationError)): - VersionFactory.create(package=package) - - -class PackageModelTests(TestCase): - def test_homepages(self): - homepage = "http://gentoo.org http://mypackage.com" - package = PackageFactory.build(homepage=homepage) - self.assertEqual(package.homepages, - ["http://gentoo.org", "http://mypackage.com"]) - - def test_for_maintainer(self): - maintainers, packages = setup_maintainers() - maintainer = maintainers[0] - self.assertEqual( - list(Package.objects.for_maintainer(maintainer)), - packages[:1] - ) - - def test_for_herd(self): - herds, packages = setup_herds() - herd = herds[0] - self.assertEqual( - list(Package.objects.for_herd(herd)), - packages[:1] - ) - - def test_for_category(self): - categories, packages = setup_categories() - category = categories[0] - self.assertEqual( - list(Package.objects.for_category(category)), - packages[:1] - ) - - def test_for_overlay(self): - overlays, packages = setup_overlays() - overlay = overlays[0] - - package_ids = [p.pk for p in packages[overlay]] - for package in Package.objects.for_overlay(overlay): - self.assertTrue(package["id"] in package_ids) - - def test_maintainers(self): - maintainers, packages = setup_maintainers() - maintainer_ids = [m.pk for m in maintainers] - for maintainer in Package.objects.maintainers(): - self.assertTrue(maintainer["maintainers__id"] in maintainer_ids) - - def test_herds(self): - herds, packages = setup_herds() - herd_names = [h.herd for h in herds] - for herd in Package.objects.herds(): - self.assertTrue(herd["herds__herd"] in herd_names) - - def test_categories(self): - categories, packages = setup_categories() - cat_names = [c["category"] for c in Package.objects.categories()] - for category in categories: - self.assertTrue(category in cat_names) - - def test_overlays(self): - overlays, packages = setup_overlays() - overlay_names = Package.objects.overlays() - for overlay in overlays: - self.assertTrue(overlay in overlay_names) - - -class EuscanResultModelTests(TestCase): - def test_lastest(self): - result1 = EuscanResultFactory.create( - datetime=datetime(2012, 04, 01, 12, 0, 0, 0, utc) - ) - result2 = EuscanResultFactory.create( - datetime=datetime(2012, 01, 01, 12, 0, 0, 0, utc) - ) - self.assertEqual(result1, EuscanResult.objects.latest()) - self.assertNotEqual(result2, EuscanResult.objects.latest()) diff --git a/euscanwww/djeuscan/tests/test_views.py b/euscanwww/djeuscan/tests/test_views.py deleted file mode 100644 index 4917d9d..0000000 --- a/euscanwww/djeuscan/tests/test_views.py +++ /dev/null @@ -1,305 +0,0 @@ -import StringIO - -try: - from BeautifulSoup import BeautifulSoup -except ImportError: - from bs4 import BeautifulSoup - -from euscan_accounts.helpers import get_profile - -from djeuscan.tests import SystemTestCase -from djeuscan.tests.euscan_factory import PackageFactory, setup_maintainers, \ - setup_herds, setup_categories, setup_overlays - - -class PagesTest(SystemTestCase): - """ - Test main pages - """ - - def test_index(self): - response = self.get("index") - self.assertEqual(response.status_code, 200) - - def test_world(self): - response = self.get("world") - self.assertEqual(response.status_code, 200) - - def test_about(self): - response = self.get("about") - self.assertEqual(response.status_code, 200) - - def test_global_feed(self): - response = self.get("global_feed") - self.assertEqual(response.status_code, 200) - - def test_api(self): - response = self.get("api") - self.assertEqual(response.status_code, 200) - - def test_profile(self): - response = self.get("accounts_index") - self.assertEqual(response.status_code, 302) - - with self.login(): - response = self.get("accounts_index") - self.assertEqual(response.status_code, 200) - - -class PackageTests(SystemTestCase): - def setUp(self): - super(PackageTests, self).setUp() - self.package = PackageFactory.create() - - def test_package(self): - response = self.get("package", category=self.package.category, - package=self.package.name) - self.assertEqual(response.status_code, 200) - - def test_favourite(self): - response = self.get("package", category=self.package.category, - package=self.package.name) - self.assertEqual(response.status_code, 200) - - self.assertNotIn("Watch", response.content) - - with self.login(): - response = self.get("package", category=self.package.category, - package=self.package.name) - self.assertEqual(response.status_code, 200) - - user = response.context["user"] - self.assertEquals(get_profile(user).categories.count(), 0) - - self.assertIn("Watch", response.content) - self.post("favourite_package", category=self.package.category, - package=self.package.name) - - self.assertEquals(get_profile(user).packages.count(), 1) - - response = self.get("accounts_packages") - self.assertEqual(response.status_code, 200) - - self.assertIn(self.package.name, response.content) - - self.post("unfavourite_package", category=self.package.category, - package=self.package.name) - self.assertEquals(get_profile(user).packages.count(), 0) - - -class SectionTests(SystemTestCase): - def _check_table(self, response, items, attr=None): - soup = BeautifulSoup(response.content) - rows = soup.findAll("tr") - - # the -1 is for the table heading - self.assertEqual(len(rows) - 1, len(items)) - - for item in items: - if attr: - item_str = getattr(item, attr) - else: - item_str = item - self.assertTrue(item_str in response.content) - - -class CategoriesTests(SectionTests): - def setUp(self): - super(CategoriesTests, self).setUp() - self.categories, self.packages = setup_categories() - - def test_categories(self): - response = self.get("categories") - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.categories) - - def test_category(self): - category = self.categories[0] - response = self.get("category", category=category) - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.packages[:1], attr="name") - - def test_category_feed(self): - category = self.categories[0] - response = self.get("category_feed", category=category) - self.assertEqual(response.status_code, 200) - - def test_favourite(self): - category = self.categories[0] - - response = self.get("category", category=category) - - self.assertEqual(response.status_code, 200) - self.assertNotIn("Watch", response.content) - - with self.login(): - response = self.get("category", category=category) - self.assertEqual(response.status_code, 200) - - user = response.context["user"] - self.assertEquals(get_profile(user).categories.count(), 0) - - self.assertIn("Watch", response.content) - self.post("favourite_category", category=category) - - self.assertEquals(get_profile(user).categories.count(), 1) - - response = self.get("accounts_categories") - self.assertEqual(response.status_code, 200) - - self._check_table(response, [category]) - - self.post("unfavourite_category", category=category) - - self.assertEquals(get_profile(user).categories.count(), 0) - - -class HerdsTests(SectionTests): - def setUp(self): - super(HerdsTests, self).setUp() - self.herds, self.packages = setup_herds() - - def test_herds(self): - response = self.get("herds") - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.herds, attr="herd") - - def test_herd(self): - herd = self.herds[0] - response = self.get("herd", herd=herd.herd) - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.packages[:1], attr="name") - - def test_herd_feed(self): - herd = self.herds[0] - response = self.get("herd_feed", herd=herd.herd) - self.assertEqual(response.status_code, 200) - - def test_favourite(self): - herd = self.herds[0] - - response = self.get("herd", herd=herd.herd) - self.assertEqual(response.status_code, 200) - self.assertNotIn("Watch", response.content) - - with self.login(): - response = self.get("herd", herd=herd.herd) - self.assertEqual(response.status_code, 200) - - user = response.context["user"] - self.assertEquals(get_profile(user).herds.count(), 0) - - self.assertIn("Watch", response.content) - self.post("favourite_herd", herd=herd.herd) - - self.assertEquals(get_profile(user).herds.count(), 1) - - response = self.get("accounts_herds") - self.assertEqual(response.status_code, 200) - - self._check_table(response, [herd], attr="herd") - - self.post("unfavourite_herd", herd=herd.herd) - self.assertEquals(get_profile(user).herds.count(), 0) - - -class MaintainersTests(SectionTests): - def setUp(self): - super(MaintainersTests, self).setUp() - self.maintainers, self.packages = setup_maintainers() - - def test_maintainers(self): - response = self.get("maintainers") - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.maintainers, attr="name") - - def test_maintainer(self): - maintainer = self.maintainers[0] - response = self.get("maintainer", maintainer_id=maintainer.pk) - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.packages[:1], attr="name") - - def test_maintainer_feed(self): - maintainer = self.maintainers[0] - response = self.get("maintainer_feed", maintainer_id=maintainer.pk) - self.assertEqual(response.status_code, 200) - - def test_favourite(self): - maintainer = self.maintainers[0] - - response = self.get("maintainer", maintainer_id=maintainer.pk) - self.assertEqual(response.status_code, 200) - self.assertNotIn("Watch", response.content) - - with self.login(): - response = self.get("maintainer", maintainer_id=maintainer.pk) - self.assertEqual(response.status_code, 200) - - user = response.context["user"] - self.assertEquals(get_profile(user).maintainers.count(), 0) - - self.assertIn("Watch", response.content) - self.post("favourite_maintainer", maintainer_id=maintainer.pk) - - self.assertEquals(get_profile(user).maintainers.count(), 1) - - response = self.get("accounts_maintainers") - self.assertEqual(response.status_code, 200) - - self._check_table(response, [maintainer], attr="name") - - self.post("unfavourite_maintainer", maintainer_id=maintainer.pk) - - self.assertEquals(get_profile(user).maintainers.count(), 0) - - -class OverlayTests(SectionTests): - def setUp(self): - super(OverlayTests, self).setUp() - self.overlays, self.packages = setup_overlays() - - def test_overlays(self): - response = self.get("overlays") - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.overlays) - - def test_overlay(self): - overlay = self.overlays[0] - response = self.get("overlay", overlay=overlay) - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.packages[overlay], attr="name") - - -class WorldScanTests(SectionTests): - def setUp(self): - super(WorldScanTests, self).setUp() - for _ in range(3): - PackageFactory.create() - self.packages = [PackageFactory.create().name for _ in range(3)] - - def test_world_scan_packages(self): - response = self.post("world_scan", - data={"packages": "\n".join(self.packages)}) - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.packages) - - def test_world_scan_world(self): - world_file = StringIO.StringIO() - world_file.write("\n".join(self.packages)) - world_file.name = "world" - world_file.read = world_file.getvalue - - response = self.post("world_scan", data={"world": world_file}) - - self.assertEqual(response.status_code, 200) - - self._check_table(response, self.packages) diff --git a/euscanwww/djeuscan/urls.py b/euscanwww/djeuscan/urls.py deleted file mode 100644 index be2e33f..0000000 --- a/euscanwww/djeuscan/urls.py +++ /dev/null @@ -1,125 +0,0 @@ -from django.conf.urls import url, patterns, include -from django.contrib.auth.decorators import user_passes_test - -from djcelery.views import apply as apply_task -from djeuscan.views import registered_tasks - -from euscan_accounts.views import favourite_package, unfavourite_package, \ - favourite_category, unfavourite_category, favourite_herd, \ - unfavourite_herd, favourite_maintainer, unfavourite_maintainer, \ - favourite_overlay, unfavourite_overlay, favourite_world, unfavourite_world - -from djeuscan.feeds import PackageFeed, CategoryFeed, HerdFeed, \ - MaintainerFeed, GlobalFeed, WorldScanFeed, StabilizationCandidatesFeed - -admin_required = user_passes_test(lambda u: u.is_superuser) - - -package_patterns = patterns('djeuscan.views', - url(r'^$', 'package', name="package"), - url(r'^feed/$', PackageFeed(), name='package_feed'), - url(r'^favourite/$', favourite_package, name="favourite_package"), - url(r'^unfavourite/$', unfavourite_package, name="unfavourite_package"), - url(r'^refresh$', "refresh_package", name="refresh_package"), - url(r'^problem$', 'problem', name="problem"), -) - -files_patterns = patterns('djeuscan.views', - url(r'^(?P[\w+][\w+.-]*)/(?P.+).ebuild$', - "package_version_ebuild", - name="package_version_ebuild"), - url(r'^(?P[\w+][\w+.-]*)/(?P[\w+][\w+.-]*)/' - r'(?P[\w+][\w+.-]*)/metadata.xml$', - "package_metadata", - name="package_metadata"), -) - -categories_patterns = patterns('djeuscan.views', - url(r'^(?:view/)?$', 'category', name="category"), - url(r'^feed/$', CategoryFeed(), name='category_feed'), - url(r'^charts/(?P[\w\-]+).png$', 'chart_category', - name="chart_category"), - url(r'^favourite/$', favourite_category, name="favourite_category"), - url(r'^unfavourite/$', unfavourite_category, - name="unfavourite_category"), -) - -herds_patterns = patterns('djeuscan.views', - url(r'^(?:view/)?$', 'herd', name="herd"), - url(r'^feed/$', HerdFeed(), name='herd_feed'), - url(r'^charts/(?P[\w\-]+).png$', 'chart_herd', name="chart_herd"), - url(r'^favourite/$', favourite_herd, name="favourite_herd"), - url(r'^unfavourite/$', unfavourite_herd, name="unfavourite_herd"), -) - -maintainers_patterns = patterns('djeuscan.views', - url(r'^(?:view/)?$', 'maintainer', name="maintainer"), - url(r'^feed/$', MaintainerFeed(), name='maintainer_feed'), - url(r'^charts/(?P[\w\-]+).png$', 'chart_maintainer', - name="chart_maintainer"), - url(r'^favourite/$', favourite_maintainer, name="favourite_maintainer"), - url(r'^unfavourite/$', unfavourite_maintainer, - name="unfavourite_maintainer"), -) - -overlays_patterns = patterns('djeuscan.views', - url(r'^(?:view/)?$', 'overlay', name="overlay"), - url(r'^favourite/$', favourite_overlay, name="favourite_overlay"), - url(r'^unfavourite/$', unfavourite_overlay, name="unfavourite_overlay"), -) - -tasks_patterns = patterns('djeuscan.views', - url(r'^registered_tasks/$', admin_required(registered_tasks), - name="registered_tasks"), - url(r'^apply/(?P.*)/$', admin_required(apply_task), - name="apply_task"), -) - - -urlpatterns = patterns('djeuscan.views', - # Global stuff - url(r'^api/', include('djeuscan.api.urls')), - - url(r'^$', 'index', name="index"), - url(r'^feed/$', GlobalFeed(), name='global_feed'), - url(r'^feed/stabilization_candidates$', StabilizationCandidatesFeed(), - name='stabilization_candidates_feed'), - url(r'^about/$', 'about', name="about"), - url(r'^about/api$', 'api', name="api"), - url(r'^about/feeds$', 'feeds', name="feeds"), - url(r'^about/config$', 'config', name="config"), - url(r'^statistics/$', 'statistics', name="statistics"), - url(r'^statistics/handlers/(?P[^/]+)/$', 'statistics_handler', - name="statistics_handler"), - url(r'^statistics/charts/(?P[\w\-]+).png$', 'chart', name="chart"), - url(r'^world/$', 'world', name="world"), - url(r'^world/scan/$', 'world_scan', name="world_scan"), - url(r'^world/scan/feed$', WorldScanFeed(), name="world_scan_feed"), - url(r'^world/favourite/$', favourite_world, name="favourite_world"), - url(r'^world/unfavourite/$', unfavourite_world, - name="unfavourite_world"), - - # Real data - url(r'^categories/$', 'categories', name="categories"), - url(r'^categories/(?P[\w+][\w+.-]*)/', - include(categories_patterns)), - - url(r'^herds/$', 'herds', name="herds"), - url(r'^herds/(?P[\@\{\}\w+.-]+)/', include(herds_patterns)), - - url(r'^maintainers/$', 'maintainers', name="maintainers"), - url(r'^maintainers/(?P\d+)/', - include(maintainers_patterns)), - url(r'^maintainers/(?P[^/]+)/', - include(maintainers_patterns)), - - url(r'^overlays/$', 'overlays', name="overlays"), - url(r'^overlays/(?P[\w+][\w+.-]*)/', include(overlays_patterns)), - - url(r'^package/(?P[\w+][\w+.-]*)/(?P[\w+][\w+.-]*)/', - include(package_patterns)), - - url(r'^files/', include(files_patterns)), - - url(r'^tasks/', include(tasks_patterns)), -) diff --git a/euscanwww/djeuscan/views.py b/euscanwww/djeuscan/views.py deleted file mode 100644 index fc10976..0000000 --- a/euscanwww/djeuscan/views.py +++ /dev/null @@ -1,488 +0,0 @@ -""" Views """ - -import inspect -from annoying.decorators import render_to, ajax_request - -from portage.versions import catpkgsplit - -from django.http import HttpResponse, HttpResponseNotFound -from django.core.urlresolvers import reverse -from django.shortcuts import get_object_or_404, redirect -from django.contrib.auth.decorators import login_required -from django.views.decorators.http import require_POST -from django.db import models - -from djeuscan.helpers import version_key, packages_from_names, \ - get_maintainer_or_404, get_make_conf, get_layman_repos -from djeuscan.models import Version, Package, Herd, Maintainer, EuscanResult, \ - VersionLog, RefreshPackageQuery, ProblemReport, Category, Overlay -from djeuscan.forms import WorldForm, PackagesForm, ProblemReportForm -from djeuscan.tasks import admin_tasks -from djeuscan import charts - -from euscan_accounts.helpers import get_profile - - -@render_to('euscan/index.html') -def index(request): - context = { - 'n_packaged': Package.objects.n_packaged(), - 'n_overlay': Package.objects.n_overlay(), - 'n_versions': Package.objects.n_versions(), - 'n_upstream': Package.objects.n_upstream(), - 'n_packages': Package.objects.count(), - 'n_herds': Herd.objects.count(), - 'n_maintainers': Maintainer.objects.count(), - } - try: - context['last_scan'] = EuscanResult.objects.latest().datetime - except EuscanResult.DoesNotExist: - context['last_scan'] = None - - return context - - -@render_to('euscan/logs.html') -def logs(request): - return {} - - -@render_to('euscan/categories.html') -def categories(request): - try: - last_scan = EuscanResult.objects.latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - return {'categories': Package.objects.categories(), 'last_scan': last_scan} - - -@render_to('euscan/category.html') -def category(request, category): - packages = Package.objects.for_category(category, last_versions=True) - - if not packages: - return HttpResponseNotFound() - - try: - last_scan = \ - EuscanResult.objects.for_category(category).latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - favourited = False - if request.user.is_authenticated(): - try: - category = Category.objects.get(name=category) - favourited = category in get_profile(request.user).categories.all() - except Category.DoesNotExist: - pass - - return {'category': category, 'packages': packages, 'last_scan': last_scan, - 'favourited': favourited} - - -@render_to('euscan/herds.html') -def herds(request): - herds = Package.objects.herds() - - try: - last_scan = EuscanResult.objects.latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - return {'herds': herds, 'last_scan': last_scan} - - -@render_to('euscan/herd.html') -def herd(request, herd): - herd = get_object_or_404(Herd, herd=herd) - packages = Package.objects.for_herd(herd, last_versions=True) - - try: - last_scan = EuscanResult.objects.for_herd(herd).latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - favourited = False - if request.user.is_authenticated(): - if herd in get_profile(request.user).herds.all(): - favourited = True - - return {'herd': herd, 'packages': packages, "last_scan": last_scan, - 'favourited': favourited} - - -@render_to('euscan/maintainers.html') -def maintainers(request): - maintainers = Package.objects.maintainers() - - try: - last_scan = EuscanResult.objects.latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - return {'maintainers': maintainers, 'last_scan': last_scan} - - -@render_to('euscan/maintainer.html') -def maintainer(request, maintainer_id=None, maintainer_email=None): - maintainer = get_maintainer_or_404(maintainer_id, maintainer_email) - packages = Package.objects.for_maintainer(maintainer, last_versions=True) - - try: - last_scan = \ - EuscanResult.objects.for_maintainer(maintainer).latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - favourited = False - if request.user.is_authenticated(): - if maintainer in get_profile(request.user).maintainers.all(): - favourited = True - - return {'maintainer': maintainer, 'packages': packages, - 'last_scan': last_scan, 'favourited': favourited} - - -@render_to('euscan/overlays.html') -def overlays(request): - overlays = Package.objects.overlays() - - try: - last_scan = EuscanResult.objects.latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - return {'overlays': overlays, 'last_scan': last_scan} - - -@render_to('euscan/overlay.html') -def overlay(request, overlay): - packages = Package.objects.for_overlay(overlay) - if not packages: - return HttpResponseNotFound() - - try: - last_scan = EuscanResult.objects.latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - favourited = False - if request.user.is_authenticated(): - try: - overlay = Overlay.objects.get(name=overlay) - favourited = overlay in get_profile(request.user).overlays.all() - except Overlay.DoesNotExist: - pass - - return {'overlay': overlay, 'packages': packages, 'last_scan': last_scan, - 'favourited': favourited} - - -@render_to('euscan/package.html') -def package(request, category, package): - package = get_object_or_404(Package, category=category, name=package) - packaged = Version.objects.filter(package=package, packaged=True) - upstream = Version.objects.filter(package=package, packaged=False) - - packaged = sorted(packaged, key=version_key) - upstream = sorted(upstream, key=version_key) - - 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) - - try: - last_scan = EuscanResult.objects.for_package(package).latest().datetime - except EuscanResult.DoesNotExist: - last_scan = None - - favourited = False - if request.user.is_authenticated(): - if package in get_profile(request.user).packages.all(): - favourited = True - - try: - refresh_query = RefreshPackageQuery.objects.get(package=package) - except RefreshPackageQuery.DoesNotExist: - refresh_requested = False - refresh_pos = None - else: - refresh_requested = request.user in refresh_query.users.all() - refresh_pos = refresh_query.position - - return { - 'package': package, - 'packaged': packaged, - 'upstream': upstream, - 'vlog': vlog, - 'log': log, - 'msg': log.messages if log else "", - 'last_scan': last_scan, - 'favourited': favourited, - 'refresh_requested': refresh_requested, - 'refresh_pos': refresh_pos, - } - - -def package_metadata(request, overlay, category, package): - package = get_object_or_404(Package, category=category, name=package) - - versions = Version.objects.filter(package=package, overlay=overlay) - if len(versions) == 0: - return HttpResponseNotFound() - - # XXX: Kinda ugly, it assumes that every version with the same overlay - # has the same metadata path - version = versions[0] - - content = "" - if version.metadata_path: - try: - with open(version.metadata_path) as meta_file: - content = meta_file.read() - except IOError: - return HttpResponseNotFound() - else: - return HttpResponseNotFound() - return HttpResponse(content, content_type="text/plain") - - -def package_version_ebuild(request, overlay, cpv): - category, package, version, revision = catpkgsplit(cpv) - pkg = get_object_or_404(Package, category=category, name=package) - obj = get_object_or_404(Version, package=pkg, version=version, - revision=revision, overlay=overlay) - - if obj.ebuild_path: - try: - with open(obj.ebuild_path) as ebuild_file: - content = ebuild_file.read() - except IOError: - return HttpResponseNotFound() - else: - return HttpResponseNotFound() - return HttpResponse(content, content_type="text/plain") - - -@login_required -@render_to('euscan/problem.html') -def problem(request, category, package): - package = get_object_or_404(Package, category=category, name=package) - packaged = Version.objects.filter(package=package, packaged=True) - upstream = Version.objects.filter(package=package, packaged=False) - - log = EuscanResult.objects.filter(package=package).\ - order_by('-datetime')[:1] - log = log[0] if log else None - - thanks_for_reporting = False - - if request.method == "POST": - form = ProblemReportForm(package, request.POST) - if form.is_valid(): - ProblemReport( - package=package, - version=form.cleaned_data["version"], - subject=form.cleaned_data["subject"], - message=form.cleaned_data["message"], - ).save() - thanks_for_reporting = True - else: - form = ProblemReportForm(package) - - return { - 'form': form, - 'thanks_for_reporting': thanks_for_reporting, - 'package': package, - 'packaged': packaged, - 'upstream': upstream, - 'msg': log.messages if log else "", - } - - -@render_to('euscan/world.html') -def world(request): - world_form = WorldForm() - packages_form = PackagesForm() - - return { - 'world_form': world_form, - 'packages_form': packages_form - } - - -@render_to('euscan/world_scan.html') -def world_scan(request): - if 'world' in request.FILES: - data = request.FILES['world'].read() - elif 'packages' in request.POST: - data = request.POST['packages'] - else: - data = "" - - packages = packages_from_names(data) - packages_ids = [p.pk for p in packages] - - favourited = False - if len(packages) > 0 and request.user.is_authenticated(): - profile = get_profile(request.user) - if len(packages) == len(profile.packages.filter(id__in=packages_ids)): - favourited = True - - return { - 'packages': packages, - 'packages_ids': packages_ids, - 'favourited': favourited - } - - -@render_to("euscan/about.html") -def about(request): - return {} - - -@render_to("euscan/api.html") -def api(request): - return {} - - -@render_to("euscan/feeds.html") -def feeds(request): - return {} - - -@render_to("euscan/config.html") -def config(request): - from euscan import CONFIG, BLACKLIST_VERSIONS, BLACKLIST_PACKAGES, \ - SCANDIR_BLACKLIST_URLS, BRUTEFORCE_BLACKLIST_PACKAGES, \ - BRUTEFORCE_BLACKLIST_URLS, ROBOTS_TXT_BLACKLIST_DOMAINS - euscan_config = { - "CONFIG": CONFIG, - "BLACKLIST_VERSIONS": BLACKLIST_VERSIONS, - "BLACKLIST_PACKAGES": BLACKLIST_PACKAGES, - "SCANDIR_BLACKLIST_URLS": SCANDIR_BLACKLIST_URLS, - "BRUTEFORCE_BLACKLIST_PACKAGES": BRUTEFORCE_BLACKLIST_PACKAGES, - "BRUTEFORCE_BLACKLIST_URLS": BRUTEFORCE_BLACKLIST_URLS, - "ROBOTS_TXT_BLACKLIST_DOMAINS": ROBOTS_TXT_BLACKLIST_DOMAINS, - } - make_conf = get_make_conf() - layman_repos = get_layman_repos() - - return { - "euscan_config": euscan_config, - "make_conf": make_conf, - "layman_repos": layman_repos, - } - - -@render_to("euscan/statistics.html") -def statistics(request): - handlers = ( - Version.objects.values("handler") - .filter(overlay="") - .annotate(n=models.Count("handler"), - avg_conf=models.Avg("confidence")) - ) - for i in xrange(len(handlers)): - if not handlers[i]['handler']: - handlers[i]['handler'] = "unknown" - return {"handlers": handlers} - - -@render_to("euscan/statistics_handler.html") -def statistics_handler(request, handler): - if handler == "unknown": - handler = "" - packages = Package.objects.for_handler(handler) - return {"handler": handler, "packages": packages} - - -def chart(request, **kwargs): - from django.views.static import serve - - chart = kwargs['chart'] if 'chart' in kwargs else None - - if 'maintainer_id' in kwargs or 'maintainer_email' in kwargs: - kwargs['maintainer'] = get_maintainer_or_404( - kwargs.get('maintainer_id'), - kwargs.get('maintainer_email') - ) - if 'herd' in kwargs: - kwargs['herd'] = get_object_or_404(Herd, herd=kwargs['herd']) - - for kw in ('-small', '-weekly', '-monthly', '-yearly'): - if chart.endswith(kw): - if kw in ('-weekly', '-monthly', '-yearly'): - kwargs['period'] = kw - kwargs[kw] = True - chart = chart[:-len(kw)] - - if chart == 'pie-packages': - path = charts.pie_packages(**kwargs) - elif chart == 'pie-versions': - path = charts.pie_versions(**kwargs) - elif chart == 'packages': - path = charts.packages(**kwargs) - elif chart == 'versions': - path = charts.versions(**kwargs) - else: - return HttpResponseNotFound() - - return serve(request, path, document_root=charts.CHARTS_ROOT) - - -def chart_maintainer(request, **kwargs): - return chart(request, **kwargs) - - -def chart_herd(request, **kwargs): - return chart(request, **kwargs) - - -def chart_category(request, **kwargs): - return chart(request, **kwargs) - - -@ajax_request -def registered_tasks(request): - data = {} - for task in admin_tasks: - argspec = inspect.getargspec(task.run) - data[task.name] = { - "args": argspec.args, - "defaults": argspec.defaults, - "default_types": None - } - if argspec.defaults is not None: - data[task.name].update({ - "defaults_types": [type(x).__name__ for x in argspec.defaults] - }) - return {"tasks": data} - - -@login_required -@require_POST -@ajax_request -def refresh_package(request, category, package): - pkg = get_object_or_404(Package, category=category, name=package) - - obj, created = RefreshPackageQuery.objects.get_or_create(package=pkg) - - if request.user in \ - RefreshPackageQuery.objects.get(package=pkg).users.all(): - return {"result": "failure"} - - obj.users.add(request.user) - if not created: - obj.priority += 1 - obj.save() - if created: - from djeuscan.tasks import consume_refresh_queue - consume_refresh_queue.delay() - if "nojs" in request.POST: - return redirect(reverse("package", args=(category, package))) - else: - return {"result": "success", "position": obj.position} diff --git a/euscanwww/euscan_accounts/__init__.py b/euscanwww/euscan_accounts/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/euscan_accounts/admin.py b/euscanwww/euscan_accounts/admin.py deleted file mode 100644 index 453650a..0000000 --- a/euscanwww/euscan_accounts/admin.py +++ /dev/null @@ -1,4 +0,0 @@ -from django.contrib import admin -from euscan_accounts.models import UserProfile - -admin.site.register(UserProfile) diff --git a/euscanwww/euscan_accounts/feeds.py b/euscanwww/euscan_accounts/feeds.py deleted file mode 100644 index 9a70b80..0000000 --- a/euscanwww/euscan_accounts/feeds.py +++ /dev/null @@ -1,26 +0,0 @@ -from djeuscan.feeds import BaseFeed -from euscan_accounts.helpers import get_profile, get_account_versionlogs - - -class UserFeed(BaseFeed): - link = "/" - - def description(self, data): - return "%s - last euscan changes" % data["user"] - - def title(self, data): - return "%s - watched packages" % data["user"] - - def get_object(self, request): - return { - "user": request.user, - "options": request.GET, - } - - def _items(self, data): - user = data["user"] - - profile = get_profile(user) - vlogs = get_account_versionlogs(profile) - - return vlogs, 100 diff --git a/euscanwww/euscan_accounts/forms.py b/euscanwww/euscan_accounts/forms.py deleted file mode 100644 index 620448d..0000000 --- a/euscanwww/euscan_accounts/forms.py +++ /dev/null @@ -1,38 +0,0 @@ -from django import forms -from euscan_accounts.models import UserProfile - - -class PreferencesForm(forms.Form): - first_name = forms.CharField(max_length=30, required=False) - last_name = forms.CharField(max_length=30, required=False) - email = forms.EmailField() - - feed_upstream_info = forms.BooleanField(required=False, - label="Upstream info") - feed_portage_info = forms.BooleanField(required=False, - label="Portage info") - feed_show_adds = forms.BooleanField(required=False, - label="Show version bumps") - feed_show_removals = forms.BooleanField(required=False, - label="Show version removals") - feed_ignore_pre = forms.BooleanField(required=False, - label="Ignore unstable releases") - feed_ignore_pre_if_stable = forms.BooleanField( - required=False, - label="Ignore unstable releases if current version is stable" - ) - - email_activated = forms.BooleanField( - required=False, label="Receive euscan emails" - ) - email_every = forms.ChoiceField( - choices=UserProfile.EMAIL_OPTS, - label="Send email", - ) - email_ignore_pre = forms.BooleanField( - required=False, label="Ignore unstable releases" - ) - email_ignore_pre_if_stable = forms.BooleanField( - required=False, - label="Ignore unstable releases if current version is stable" - ) diff --git a/euscanwww/euscan_accounts/helpers.py b/euscanwww/euscan_accounts/helpers.py deleted file mode 100644 index 7422ab9..0000000 --- a/euscanwww/euscan_accounts/helpers.py +++ /dev/null @@ -1,81 +0,0 @@ -from django.db.models import Q - - -def get_profile(user): - from euscan_accounts.models import UserProfile - try: - return user.get_profile() - except UserProfile.DoesNotExist: - UserProfile.objects.create(user=user) - return user.get_profile() - - -def get_account_categories(user): - from djeuscan.models import Package - # TODO: This is quite ugly - category_names = [obj.name for obj in get_profile(user).categories.all()] - return [c for c in Package.objects.categories() - if c["category"] in category_names] - - -def get_account_herds(user): - from djeuscan.models import Package - - ids = [herd.pk for herd in get_profile(user).herds.all()] - return Package.objects.herds(ids=ids) - - -def get_account_maintainers(user): - from djeuscan.models import Package - - ids = [obj.pk for obj in get_profile(user).maintainers.all()] - return Package.objects.maintainers(ids=ids) - - -def get_account_versionlogs(profile): - """ - Returns all watched packages - """ - from djeuscan.models import Package, VersionLog - - q_categories = Q(category__in=[ - category.name for category in profile.categories.all()]) - q_herds = Q(herds__in=profile.herds.all()) - q_maintainers = Q(maintainers__in=profile.maintainers.all()) - packages = list(profile.packages.all()) + list(Package.objects.filter( - q_categories | q_herds | q_maintainers)) - - overlays = [o.name for o in profile.overlays.all()] - - return VersionLog.objects.filter( - Q(package__in=packages) | Q(overlay__in=overlays) - ) - - -def get_user_fav_infos(user): - upstream_k = lambda c: c["n_versions"] - c["n_packaged"] - c["n_overlay"] - - categories = sorted(get_account_categories(user), - key=upstream_k, reverse=True) - c_upstream = sum([upstream_k(c) for c in categories]) - herds = sorted(get_account_herds(user), - key=upstream_k, reverse=True) - h_upstream = sum([upstream_k(c) for c in herds]) - maintainers = sorted(get_account_maintainers(user), - key=upstream_k, reverse=True) - m_upstream = sum([upstream_k(c) for c in maintainers]) - packages = sorted( - get_profile(user).packages.all(), - key=lambda p: p.n_versions - p.n_packaged - p.n_overlay, - reverse=True - ) - p_upstream = sum( - [c.n_versions - c.n_packaged - c.n_overlay for c in packages] - ) - - return { - "categories": categories, "categories_upstream": c_upstream, - "herds": herds, "herds_upstream": h_upstream, - "maintainers": maintainers, "maintainers_upstream": m_upstream, - "packages": packages, "packages_upstream": p_upstream, - } diff --git a/euscanwww/euscan_accounts/migrations/0001_initial.py b/euscanwww/euscan_accounts/migrations/0001_initial.py deleted file mode 100644 index a877d87..0000000 --- a/euscanwww/euscan_accounts/migrations/0001_initial.py +++ /dev/null @@ -1,159 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.rename_table('djeuscan_userprofile', - 'euscan_accounts_userprofile') - db.rename_table('djeuscan_userprofile_overlays', - 'euscan_accounts_userprofile_overlays') - db.rename_table('djeuscan_userprofile_maintainers', - 'euscan_accounts_userprofile_maintainers') - db.rename_table('djeuscan_userprofile_packages', - 'euscan_accounts_userprofile_packages') - db.rename_table('djeuscan_userprofile_herds', - 'euscan_accounts_userprofile_herds') - db.rename_table('djeuscan_userprofile_categories', - 'euscan_accounts_userprofile_categories') - - if not db.dry_run: - # For permissions to work properly after migrating - orm['contenttypes.contenttype'].objects.filter( - app_label='djeuscan', model='userprofile' - ).update(app_label='euscan_accounts') - - def backwards(self, orm): - db.rename_table('euscan_accounts_userprofile', - 'djeuscan_userprofile') - db.rename_table('euscan_accounts_userprofile_overlays', - 'djeuscan_userprofile_overlays') - db.rename_table('euscan_accounts_userprofile_maintainers', - 'djeuscan_userprofile_maintainers') - db.rename_table('euscan_accounts_userprofile_packages', - 'djeuscan_userprofile_packages') - db.rename_table('euscan_accounts_userprofile_herds', - 'djeuscan_userprofile_herds') - db.rename_table('euscan_accounts_userprofile_categories', - 'djeuscan_userprofile_categories') - - - 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.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.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.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.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'}) - }, - 'euscan_accounts.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'}) - } - } - - complete_apps = ['euscan_accounts'] diff --git a/euscanwww/euscan_accounts/migrations/__init__.py b/euscanwww/euscan_accounts/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/euscan_accounts/models.py b/euscanwww/euscan_accounts/models.py deleted file mode 100644 index 0d83e15..0000000 --- a/euscanwww/euscan_accounts/models.py +++ /dev/null @@ -1,35 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User - -from djeuscan.models import Herd, Maintainer, Package, Category, Overlay - - -class UserProfile(models.Model): - EMAIL_SCAN = 1 - EMAIL_WEEKLY = 2 - EMAIL_MONTHLY = 3 - EMAIL_OPTS = ( - (EMAIL_SCAN, 'On updates'), - (EMAIL_WEEKLY, 'Weekly'), - (EMAIL_MONTHLY, 'Monthly') - ) - - user = models.OneToOneField(User) - herds = models.ManyToManyField(Herd) - maintainers = models.ManyToManyField(Maintainer) - packages = models.ManyToManyField(Package) - categories = models.ManyToManyField(Category) - overlays = models.ManyToManyField(Overlay) - - feed_upstream_info = models.BooleanField(default=True) - feed_portage_info = models.BooleanField(default=False) - feed_show_adds = models.BooleanField(default=True) - feed_show_removals = models.BooleanField(default=True) - feed_ignore_pre = models.BooleanField(default=False) - feed_ignore_pre_if_stable = models.BooleanField(default=False) - - email_activated = models.BooleanField(default=True) - email_every = models.IntegerField(choices=EMAIL_OPTS, default=EMAIL_SCAN) - email_ignore_pre = models.BooleanField(default=False) - email_ignore_pre_if_stable = models.BooleanField(default=False) - last_email = models.DateTimeField(auto_now_add=True) diff --git a/euscanwww/euscan_accounts/templates/euscan/_favourite.html b/euscanwww/euscan_accounts/templates/euscan/_favourite.html deleted file mode 100644 index ff4686a..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/_favourite.html +++ /dev/null @@ -1,23 +0,0 @@ -
    - - - {% for pk in packages_ids %} - - {% endfor %} -
    - -
    - - - {% for pk in packages_ids %} - - {% endfor %} -
    diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/categories.html b/euscanwww/euscan_accounts/templates/euscan/accounts/categories.html deleted file mode 100644 index 0caa1a6..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/categories.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "euscan/_datatable.html" %} -{% load url from future %} -{% load djeuscan_helpers %} - -{% block title %} - {{ block.super }} - Watched categories -{% endblock %} - - -{% block content %} -

    Watched categories

    - - {% categories_table categories %} - -{% endblock %} diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/euscan_email.txt b/euscanwww/euscan_accounts/templates/euscan/accounts/euscan_email.txt deleted file mode 100644 index baf396b..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/euscan_email.txt +++ /dev/null @@ -1,32 +0,0 @@ -{% load djeuscan_helpers %}{% load sub %}Hello {{ user }}, - -{% if vlogs %}euscan news: -{% for vlog in vlogs %} * {{ vlog.package|ljust:"35" }} {{ vlog.version }} {% if vlog.vtype and not vlog.vtype|is_stable %}({{ vlog.vtype }}){% endif %} -{% endfor %} -{% endif %} - -Summary: -{% with categories|length as num_categories %}{% if num_categories %} -Watching {{ num_categories }} categor{{ num_categories|pluralize:"y,ies"}}: {{ categories_upstream }} upstream version{{ categories_upstream|pluralize:"s"}} -{% if categories_upstream %}Hot categories: -{% for c in categories|slice:":3" %} * {{ c.category }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }}) -{% endfor %} -{% endif %}{% endif %}{% endwith %}{% with herds|length as num_herds %}{% if num_herds %} -Watching {{ num_herds }} herd{{ num_herds|pluralize:"s"}}: {{ herds_upstream }} upstream version{{ herds_upstream|pluralize:"s"}} -{% if herds_upstream %}Hot herds: -{% for c in herds|slice:":3" %} * {{ c.herds__herd }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }}) -{% endfor %} -{% endif %}{% endif %}{% endwith %}{% with maintainers|length as num_maintainers %}{% if num_maintainers %} -Watching {{ num_maintainers }} maintainer{{ num_maintainers|pluralize:"s"}}: {{ maintainers_upstream }} upstream version{{ maintainers_upstream|pluralize:"s"}} -{% if maintainers_upstream %}Hot maintainers: -{% for c in maintainers|slice:":3" %} * {{ c.maintainers__name }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }}) -{% endfor %} -{% endif %}{% endif %}{% endwith %}{% with packages|length as num_packages %}{% if num_packages %} -Watching {{ num_packages }} package{{ num_packages|pluralize:"s"}}: {{ packages_upstream }} upstream version{{ packages_upstream|pluralize:"s"}} -{% if packages_upstream %}Hot packages: -{% for c in packages|slice:":3" %} * {{ c }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }}) -{% endfor %} -{% endif %}{% endif %}{% endwith %} --- -This email was sent by euscan, please do not reply. -Go to your euscan account to change email notification settings. diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/herds.html b/euscanwww/euscan_accounts/templates/euscan/accounts/herds.html deleted file mode 100644 index b9d3f50..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/herds.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends "euscan/_datatable.html" %} -{% load url from future %} -{% load djeuscan_helpers %} - -{% block title %} - {{ block.super }} - Watched herds -{% endblock %} - - -{% block content %} -

    Watched herds

    - - {% herds_table herds %} -{% endblock %} diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/index.html b/euscanwww/euscan_accounts/templates/euscan/accounts/index.html deleted file mode 100644 index 0e61ed6..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/index.html +++ /dev/null @@ -1,110 +0,0 @@ -{% extends "_base.html" %} -{% load url from future %} -{% load sub %} - -{% block title %} - {{ block.super }} - Welcome {{ user }} -{% endblock %} - -{% block content %} -

    - Welcome {{ user }} - - - - Change password - - - - Preferences - - -

    - -

    Summary

    - -
    -
    - {% with categories|length as num_categories %} - Watching {{ num_categories }} categor{{ num_categories|pluralize:"y,ies"}} -
      -
    • {{ categories_upstream }} new upstream version{{ categories_upstream|pluralize:"s"}}
    • - {% if categories_upstream %} -
    • - Hot categories: -
        - {% for c in categories|slice:":3" %} -
      • {{ c.category }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }})
      • - {% endfor %} -
      -
    • - {% endif %} -
    - {% endwith %} -
    - -
    - {% with herds|length as num_herds %} - Watching {{ num_herds }} herd{{ num_herds|pluralize:"s"}} -
      -
    • {{ herds_upstream }} new upstream version{{ herds_upstream|pluralize:"s"}}
    • - {% if herds_upstream %} -
    • - Hot herds: -
        - {% for c in herds|slice:":3" %} -
      • {{ c.herds__herd }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }})
      • - {% endfor %} -
      -
    • - {% endif %} -
    - {% endwith %} -
    - -
    -
    - -
    - {% with maintainers|length as num_maintainers %} - Watching {{ num_maintainers }} maintainer{{ num_maintainers|pluralize:"s"}} -
      -
    • {{ maintainers_upstream }} new upstream version{{ maintainers_upstream|pluralize:"s"}}
    • - {% if maintainers_upstream %} -
    • - Hot maintainers: -
        - {% for c in maintainers|slice:":3" %} -
      • {{ c.maintainers__name }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }})
      • - {% endfor %} -
      -
    • - {% endif %} -
    - {% endwith %} -
    - -
    - {% with packages|length as num_packages %} - Watching {{ num_packages }} package{{ num_packages|pluralize:"s"}} -
      -
    • {{ packages_upstream }} new upstream version{{ packages_upstream|pluralize:"s"}}
    • - {% if packages_upstream %} -
    • - Hot packages: -
        - {% for c in packages|slice:":3" %} -
      • {{ c }} ({{ c.n_versions|sub:c.n_packaged|sub:c.n_overlay }})
      • - {% endfor %} -
      -
    • - {% endif %} -
    - {% endwith %} -
    -
    - -
    -{% include "euscan/_package_vlogs.html" %} -
    -{% endblock %} diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/maintainers.html b/euscanwww/euscan_accounts/templates/euscan/accounts/maintainers.html deleted file mode 100644 index cc8eefe..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/maintainers.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends "euscan/_datatable.html" %} -{% load url from future %} -{% load djeuscan_helpers %} - -{% block title %} - {{ block.super }} - Watched maintainers -{% endblock %} - - -{% block content %} -

    Watched maintainers

    - - {% maintainers_table maintainers %} -{% endblock %} diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/overlays.html b/euscanwww/euscan_accounts/templates/euscan/accounts/overlays.html deleted file mode 100644 index 946b61e..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/overlays.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "euscan/_datatable.html" %} - -{% load djeuscan_helpers %} -{% load url from future %} - -{% block title %} -{{ block.super }} - Watched overlays -{% endblock %} - -{% block content %} -

    Watched overlays

    - -{% overlays_table overlays %} - -{% endblock %} diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/packages.html b/euscanwww/euscan_accounts/templates/euscan/accounts/packages.html deleted file mode 100644 index 46e674b..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/packages.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends "euscan/_datatable.html" %} -{% load url from future %} - -{% load djeuscan_helpers %} - -{% block title %} - {{ block.super }} - Watched packages -{% endblock %} - - -{% block content %} -

    Watched packages

    - - {% packages packages %} - -{% endblock %} diff --git a/euscanwww/euscan_accounts/templates/euscan/accounts/preferences.html b/euscanwww/euscan_accounts/templates/euscan/accounts/preferences.html deleted file mode 100644 index 8df632a..0000000 --- a/euscanwww/euscan_accounts/templates/euscan/accounts/preferences.html +++ /dev/null @@ -1,116 +0,0 @@ -{% extends "_base.html" %} -{% load url from future %} - -{% block title %} - {{ block.super }} - Edit user preferences for {{ user }} -{% endblock %} - -{% block css %} - {{ block.super }} - -{% endblock %} - -{% block javascript %} - {{ block.super }} - - -{% endblock %} - - -{% block content %} - {% if updated %} -
    - Saved! Your preferences have been saved -
    - {% endif %} - -

    - Edit user preferences -

    - -
    - {% csrf_token %} - - - - - - - - - - - - - - -
    Personal settings
    {{ form.first_name.label_tag }}{% if form.first_name.errors %}
      {{ form.first_name.errors }}
    {% endif %}{{ form.first_name }}
    {{ form.last_name.label_tag }}{% if form.last_name.errors %}
      {{ form.last_name.errors }}
    {% endif %}{{ form.last_name }}
    {{ form.email.label_tag }}{% if form.first_name.errors %}
      {{ form.email.errors }}
    {% endif %} {{ form.email }}
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Feed settings
    {{ form.feed_upstream_info.label_tag }}{{ form.feed_upstream_info }}
    {{ form.feed_portage_info.label_tag }}{{ form.feed_portage_info }}
    {{ form.feed_show_adds.label_tag }}{{ form.feed_show_adds }}
    {{ form.feed_show_removals.label_tag }}{{ form.feed_show_removals }}
    {{ form.feed_ignore_pre.label_tag }}{{ form.feed_ignore_pre }}
    {{ form.feed_ignore_pre_if_stable.label_tag }}{{ form.feed_ignore_pre_if_stable }}
    - - - - - - - - - - - - - - - - - - - - - - - - -
    Mail settings
    {{ form.email_activated.label_tag }}{{ form.email_activated }}
    {{ form.email_every.label_tag }}{{ form.email_every }}
    {{ form.email_ignore_pre.label_tag }}{{ form.email_ignore_pre }}
    {{ form.email_ignore_pre_if_stable.label_tag }}{{ form.email_ignore_pre_if_stable }}
     
    - -
    -
    - - -{% endblock %} diff --git a/euscanwww/euscan_accounts/templatetags/__init__.py b/euscanwww/euscan_accounts/templatetags/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/euscan_accounts/templatetags/euscan_accounts_helpers.py b/euscanwww/euscan_accounts/templatetags/euscan_accounts_helpers.py deleted file mode 100644 index c664837..0000000 --- a/euscanwww/euscan_accounts/templatetags/euscan_accounts_helpers.py +++ /dev/null @@ -1,11 +0,0 @@ -from django import template -from django.core.urlresolvers import reverse - -register = template.Library() - - -@register.inclusion_tag('euscan/_favourite.html', takes_context=True) -def favourite_buttons(context, subj, *args): - context["favourite_url"] = reverse("favourite_%s" % subj, args=args) - context["unfavourite_url"] = reverse("unfavourite_%s" % subj, args=args) - return context diff --git a/euscanwww/euscan_accounts/tests.py b/euscanwww/euscan_accounts/tests.py deleted file mode 100644 index 501deb7..0000000 --- a/euscanwww/euscan_accounts/tests.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -This file demonstrates writing tests using the unittest module. These will pass -when you run "manage.py test". - -Replace this with more appropriate tests for your application. -""" - -from django.test import TestCase - - -class SimpleTest(TestCase): - def test_basic_addition(self): - """ - Tests that 1 + 1 always equals 2. - """ - self.assertEqual(1 + 1, 2) diff --git a/euscanwww/euscan_accounts/urls.py b/euscanwww/euscan_accounts/urls.py deleted file mode 100644 index 0a798cb..0000000 --- a/euscanwww/euscan_accounts/urls.py +++ /dev/null @@ -1,26 +0,0 @@ -from django.conf.urls import patterns, url -from django.contrib.auth.views import logout -from django.views.generic import RedirectView -from django.contrib.auth.decorators import login_required - -from euscan_accounts.feeds import UserFeed - - -urlpatterns = patterns('euscan_accounts.views', - url(r'^profile/$', 'accounts_index', name="accounts_index"), - url(r'^profile/preferences/$', 'accounts_preferences', - name="accounts_preferences"), - url(r'^categories/$', 'accounts_categories', name="accounts_categories"), - url(r'^herds/$', 'accounts_herds', name="accounts_herds"), - url(r'^maintainers/$', 'accounts_maintainers', - name="accounts_maintainers"), - url(r'^packages/$', 'accounts_packages', name="accounts_packages"), - url(r'^overlays/$', 'accounts_overlays', name="accounts_overlays"), - - url(r'^feed/$', login_required(UserFeed()), name='user_feed'), - - url(r'^logout/$', logout, {'next_page': '/'}), - - url(r'^password/change/done/$', - RedirectView.as_view(url="../../../profile/")), -) diff --git a/euscanwww/euscan_accounts/views.py b/euscanwww/euscan_accounts/views.py deleted file mode 100644 index 5856cbd..0000000 --- a/euscanwww/euscan_accounts/views.py +++ /dev/null @@ -1,246 +0,0 @@ -from annoying.decorators import render_to, ajax_request - -from django.shortcuts import get_object_or_404, redirect -from django.core.urlresolvers import reverse -from django.contrib.auth.decorators import login_required -from django.views.decorators.http import require_POST - -from djeuscan.models import Package, Category, Herd, Overlay -from djeuscan.helpers import get_maintainer_or_404 - -from euscan_accounts.feeds import UserFeed -from euscan_accounts.forms import PreferencesForm -from euscan_accounts.helpers import get_user_fav_infos, get_profile, \ - get_account_categories, get_account_herds, get_account_maintainers - - -@login_required -@render_to('euscan/accounts/index.html') -def accounts_index(request): - user = request.user - - infos = get_user_fav_infos(user) - infos['vlog'] = UserFeed().items({'user': user, 'options': {}}) - - return infos - - -@login_required -@render_to('euscan/accounts/preferences.html') -def accounts_preferences(request): - user = request.user - prof = get_profile(user) - - updated = False - if request.method == "POST": - form = PreferencesForm(request.POST) - if form.is_valid(): - user.first_name = form.cleaned_data["first_name"] - user.last_name = form.cleaned_data["last_name"] - user.email = form.cleaned_data["email"] - user.save(force_update=True) - - prof.feed_upstream_info = form.cleaned_data["feed_upstream_info"] - prof.feed_portage_info = form.cleaned_data["feed_portage_info"] - prof.feed_show_adds = form.cleaned_data["feed_show_adds"] - prof.feed_show_removals = form.cleaned_data["feed_show_removals"] - prof.feed_ignore_pre = form.cleaned_data["feed_ignore_pre"] - prof.feed_ignore_pre_if_stable = \ - form.cleaned_data["feed_ignore_pre_if_stable"] - - prof.email_activated = form.cleaned_data["email_activated"] - prof.email_every = form.cleaned_data["email_every"] - prof.email_ignore_pre = form.cleaned_data["email_ignore_pre"] - prof.email_ignore_pre_if_stable = \ - form.cleaned_data["email_ignore_pre_if_stable"] - - prof.save(force_update=True) - - updated = True - else: - initial_data = { - "first_name": user.first_name, - "last_name": user.last_name, - "email": user.email, - "feed_upstream_info": prof.feed_upstream_info, - "feed_portage_info": prof.feed_portage_info, - "feed_show_adds": prof.feed_show_adds, - "feed_show_removals": prof.feed_show_removals, - "feed_ignore_pre": prof.feed_ignore_pre, - "feed_ignore_pre_if_stable": prof.feed_ignore_pre_if_stable, - "email_activated": prof.email_activated, - "email_every": prof.email_every, - "email_ignore_pre": prof.email_ignore_pre, - "email_ignore_pre_if_stable": prof.email_ignore_pre_if_stable, - } - form = PreferencesForm(initial_data) - return {"form": form, "updated": updated} - - -@login_required -@render_to('euscan/accounts/categories.html') -def accounts_categories(request): - return {"categories": get_account_categories(request.user)} - - -@login_required -@render_to('euscan/accounts/herds.html') -def accounts_herds(request): - return {"herds": get_account_herds(request.user)} - - -@login_required -@render_to('euscan/accounts/maintainers.html') -def accounts_maintainers(request): - return {"maintainers": get_account_maintainers(request.user)} - - -@login_required -@render_to('euscan/accounts/packages.html') -def accounts_packages(request): - return {"packages": get_profile(request.user).packages.all()} - - -@login_required -@render_to('euscan/accounts/overlays.html') -def accounts_overlays(request): - overlays = [obj.name for obj in get_profile(request.user).overlays.all()] - return {"overlays": overlays} - - -@login_required -@require_POST -@ajax_request -def favourite_package(request, category, package): - obj = get_object_or_404(Package, category=category, name=package) - get_profile(request.user).packages.add(obj) - if "nojs" in request.POST: - return redirect(reverse("package", args=(category, package))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def unfavourite_package(request, category, package): - obj = get_object_or_404(Package, category=category, name=package) - get_profile(request.user).packages.remove(obj) - if "nojs" in request.POST: - return redirect(reverse("package", args=(category, package))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def favourite_herd(request, herd): - obj = get_object_or_404(Herd, herd=herd) - get_profile(request.user).herds.add(obj) - if "nojs" in request.POST: - return redirect(reverse("herd", args=(herd, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def unfavourite_herd(request, herd): - obj = get_object_or_404(Herd, herd=herd) - get_profile(request.user).herds.remove(obj) - if "nojs" in request.POST: - return redirect(reverse("herd", args=(herd, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def favourite_maintainer(request, maintainer_id=None, maintainer_email=None): - obj = get_maintainer_or_404(maintainer_id, maintainer_email) - get_profile(request.user).maintainers.add(obj) - if "nojs" in request.POST: - return redirect(reverse("maintainer", args=(obj.email, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def unfavourite_maintainer(request, maintainer_id=None, maintainer_email=None): - obj = get_maintainer_or_404(maintainer_id, maintainer_email) - get_profile(request.user).maintainers.remove(obj) - if "nojs" in request.POST: - return redirect(reverse("maintainer", args=(obj.email, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def favourite_category(request, category): - obj = Category.objects.get(name=category) - get_profile(request.user).categories.add(obj) - if "nojs" in request.POST: - return redirect(reverse("category", args=(category, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def unfavourite_category(request, category): - obj = Category.objects.get(name=category) - get_profile(request.user).categories.remove(obj) - if "nojs" in request.POST: - return redirect(reverse("category", args=(category, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def favourite_overlay(request, overlay): - obj = Overlay.objects.get(name=overlay) - get_profile(request.user).overlays.add(obj) - if "nojs" in request.POST: - return redirect(reverse("overlay", args=(overlay, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def unfavourite_overlay(request, overlay): - obj = Overlay.objects.get(name=overlay) - get_profile(request.user).overlays.remove(obj) - if "nojs" in request.POST: - return redirect(reverse("overlay", args=(overlay, ))) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def favourite_world(request): - if not "packages[]" in request.POST: - return {"success": False} - packages = request.POST.getlist("packages[]") - objs = Package.objects.filter(id__in=packages) - get_profile(request.user).packages.add(*objs) - if "nojs" in request.POST: - return redirect(reverse("world")) - return {"success": True} - - -@login_required -@require_POST -@ajax_request -def unfavourite_world(request): - if not "packages[]" in request.POST: - return {"success": False} - packages = request.POST.getlist("packages[]") - objs = Package.objects.filter(id__in=packages) - get_profile(request.user).packages.remove(*objs) - if "nojs" in request.POST: - return redirect(reverse("world")) - return {"success": True} diff --git a/euscanwww/euscan_captcha/__init__.py b/euscanwww/euscan_captcha/__init__.py deleted file mode 100644 index cfb4ead..0000000 --- a/euscanwww/euscan_captcha/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -#from registration.backends.default import DefaultBackend -#from forms import RegistrationFormCaptcha -# -#class CaptchaDefaultBackend(DefaultBackend): -# def get_form_class(self, request): -# return RegistrationFormCaptcha diff --git a/euscanwww/euscan_captcha/forms.py b/euscanwww/euscan_captcha/forms.py deleted file mode 100644 index d5f1185..0000000 --- a/euscanwww/euscan_captcha/forms.py +++ /dev/null @@ -1,11 +0,0 @@ -from django.conf import settings - -from captcha.fields import ReCaptchaField -from registration.forms import RegistrationForm - -class RecaptchaRegistrationForm(RegistrationForm): - captcha = ReCaptchaField( - public_key=settings.RECAPTCHA_PUBLIC_KEY, - private_key=settings.RECAPTCHA_PRIVATE_KEY, - use_ssl=True, - attrs={'theme': 'white'}) diff --git a/euscanwww/euscan_captcha/models.py b/euscanwww/euscan_captcha/models.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/euscan_captcha/urls.py b/euscanwww/euscan_captcha/urls.py deleted file mode 100644 index 435ba5c..0000000 --- a/euscanwww/euscan_captcha/urls.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.conf.urls import patterns, url - -from views import RecaptchaRegistrationView - -urlpatterns = patterns( - '', url( - r'^register/$', - RecaptchaRegistrationView.as_view(), - name='registration_register'), -) diff --git a/euscanwww/euscan_captcha/views.py b/euscanwww/euscan_captcha/views.py deleted file mode 100644 index 45ff0be..0000000 --- a/euscanwww/euscan_captcha/views.py +++ /dev/null @@ -1,5 +0,0 @@ -from registration.backends.default.views import RegistrationView -from forms import RecaptchaRegistrationForm - -class RecaptchaRegistrationView(RegistrationView): - form_class = RecaptchaRegistrationForm diff --git a/euscanwww/euscanwww/__init__.py b/euscanwww/euscanwww/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/euscanwww/euscanwww/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/euscanwww/euscanwww/models.py b/euscanwww/euscanwww/models.py deleted file mode 100644 index e69de29..0000000 diff --git a/euscanwww/euscanwww/sendmail.py b/euscanwww/euscanwww/sendmail.py deleted file mode 100644 index 691b05b..0000000 --- a/euscanwww/euscanwww/sendmail.py +++ /dev/null @@ -1,53 +0,0 @@ -"""sendmail email backend class.""" - -import threading - -from django.core.mail.backends.base import BaseEmailBackend -from subprocess import Popen, PIPE - - -class EmailBackend(BaseEmailBackend): - def __init__(self, fail_silently=False, **kwargs): - super(EmailBackend, self).__init__(fail_silently=fail_silently) - self._lock = threading.RLock() - - def open(self): - return True - - def close(self): - pass - - def send_messages(self, email_messages): - """ - Sends one or more EmailMessage objects and returns the number of email - messages sent. - """ - if not email_messages: - return - self._lock.acquire() - try: - num_sent = 0 - for message in email_messages: - sent = self._send(message) - if sent: - num_sent += 1 - finally: - self._lock.release() - return num_sent - - def _send(self, email_message): - """A helper method that does the actual sending.""" - if not email_message.recipients(): - return False - try: - ps = Popen(["sendmail"] + list(email_message.recipients()), \ - stdin=PIPE) - ps.stdin.write(email_message.message().as_string()) - ps.stdin.flush() - ps.stdin.close() - return not ps.wait() - except: - if not self.fail_silently: - raise - return False - return True diff --git a/euscanwww/euscanwww/settings.py b/euscanwww/euscanwww/settings.py deleted file mode 100644 index e1e752c..0000000 --- a/euscanwww/euscanwww/settings.py +++ /dev/null @@ -1,273 +0,0 @@ -# Django settings for euscanwww project. - -import os.path - -DEBUG = False -TEMPLATE_DEBUG = DEBUG - -ADMINS = ( - ('admin', 'admin@example.com'), -) - -MANAGERS = ADMINS - -""" -# MySQL Example: - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'euscan', - 'USER': 'euscan', - 'PASSWORD': 'password', - 'HOST': 'localhost', - 'PORT': '', - 'OPTIONS': { - 'init_command': 'SET storage_engine=INNODB', - } - }, - -# PostGreSQL Example: - 'default': { - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'euscan', - 'USER': 'euscan', - 'PASSWORD': '', - 'HOST': 'localhost', - 'PORT': '', - }, -""" - -SITE_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - -# euscan specific config -EUSCAN_ROOT = SITE_ROOT -RRD_ROOT = os.path.join(EUSCAN_ROOT, 'var', 'rrd') - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(EUSCAN_ROOT, 'var', 'db', 'euscan.db') - }, -} - -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': os.path.join(EUSCAN_ROOT, 'var', 'cache'), - } -} - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# On Unix systems, a value of None will cause Django to use the same -# timezone as the operating system. -# If running in a Windows environment this must be set to the same as your -# system time zone. -TIME_ZONE = 'Europe/Paris' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'en-us' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale -USE_L10N = True - -# If you set this to False, Django will not use timezone-aware datetimes. -USE_TZ = True - -# Absolute filesystem path to the directory that will hold user-uploaded files. -# Example: "/home/media/media.lawrence.com/" -MEDIA_ROOT = os.path.join(SITE_ROOT, 'var', 'uploads') - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash if there is a path component (optional in other cases). -# Examples: "http://media.lawrence.com", "http://example.com/media/" -MEDIA_URL = '/media/' - -# URL prefix for static files. -# Example: "http://media.lawrence.com/static/" -STATIC_URL = '/static/' - -# Additional locations of static files -STATICFILES_DIRS = ( - os.path.join(SITE_ROOT, 'htdocs'), -) - -# List of finder classes that know how to find static files in -# various locations. -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -# 'django.contrib.staticfiles.finders.DefaultStorageFinder', -) - -# Make this unique, and don't share it with anybody. -SECRET_KEY = '' - -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) - -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - # Cache middleware - 'django.middleware.cache.UpdateCacheMiddleware', - 'django.middleware.cache.FetchFromCacheMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - # Disable Csrf for now - # 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - # Uncomment the next line for simple clickjacking protection: - # 'django.middleware.clickjacking.XFrameOptionsMiddleware', -) - -CACHE_MIDDLEWARE_SECONDS = 3600 -CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True - -ROOT_URLCONF = 'euscanwww.urls' - -# Python dotted path to the WSGI application used by Django's runserver. -WSGI_APPLICATION = 'euscanwww.wsgi.application' - -FORCE_SCRIPT_NAME = "" - -TEMPLATE_DIRS = ( - os.path.join(SITE_ROOT, 'templates'), -) - -TEMPLATE_CONTEXT_PROCESSORS = ( - "django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "django.core.context_processors.static", - "django.contrib.messages.context_processors.messages", - "django.core.context_processors.request", -) - -INSTALLED_APPS = ( - 'euscanwww', - 'djeuscan', - 'euscan_accounts', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.messages', - 'django.contrib.admin', - # Uncomment the next line to enable admin documentation: - # 'django.contrib.admindocs', - 'south', - 'djcelery', - 'registration', - 'captcha' -) - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error when DEBUG=False. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'formatters': { - 'simple': { - 'format': '%(levelname)s %(asctime)s %(message)s' - }, - }, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse' - } - }, - 'handlers': { - 'console': { - 'level': 'INFO', - 'class': 'logging.StreamHandler', - 'formatter': 'simple' - }, - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, - 'djeuscan': { - 'handlers': ['console'], - 'level': 'INFO', - 'propagate': True - } - } -} - -# django-registration -ACCOUNT_ACTIVATION_DAYS = 7 -RECAPTCHA_PUBLIC_KEY = "" -RECAPTCHA_PRIVATE_KEY = "" -EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' - -# djeuscan tasks -PORTAGE_ROOT = "/" -PORTAGE_CONFIGROOT = "/" -EIX_CACHEFILE = os.path.join(PORTAGE_ROOT, 'var/cache/eix') -LAYMAN_CONFIG = "/etc/layman/layman.cfg" -MAKE_CONF = "/etc/make.conf" - -EGENCACHE_JOBS = 4 - -# Celery config -import djcelery -djcelery.setup_loader() -BROKER_URL = "amqp://guest:guest@localhost:5672//" -BROKER_CONNECTION_TIMEOUT = 3600 -CELERY_RESULT_BACKEND = "amqp" -CELERYD_CONCURRENCY = 4 -CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" - -TASKS_UPSTREAM_GROUPS = 32 -TASKS_EMAIL_GROUPS = 10 - -DAYS_TO_STABILIZATION = 30 - -# LDAP authentication -# TODO: Test data - change me! -AUTH_LDAP_SERVER_URI = "ldap://localhost" -AUTH_LDAP_USER_DN_TEMPLATE = "uid=%(user)s,ou=users,dc=my-domain,dc=com" -AUTHENTICATION_BACKENDS = ( - 'django_auth_ldap.backend.LDAPBackend', - 'django.contrib.auth.backends.ModelBackend', -) - -AUTH_PROFILE_MODULE = 'euscan_accounts.UserProfile' - -try: - from local_settings import * -except ImportError, ex: - import sys - sys.stderr.write( - "settings.py: error importing local settings file:\n" - "\t%s\nDo you have a local_settings.py module?\n" % str(ex) - ) - -os.environ['ROOT'] = PORTAGE_ROOT -os.environ['PORTAGE_CONFIGROOT'] = PORTAGE_CONFIGROOT -os.environ['EIX_CACHEFILE'] = EIX_CACHEFILE -os.environ['http_proxy'] = '127.0.0.1:8123' diff --git a/euscanwww/euscanwww/templates/404.html b/euscanwww/euscanwww/templates/404.html deleted file mode 100644 index 03332b4..0000000 --- a/euscanwww/euscanwww/templates/404.html +++ /dev/null @@ -1 +0,0 @@ -

    Not Found

    diff --git a/euscanwww/euscanwww/urls.py b/euscanwww/euscanwww/urls.py deleted file mode 100644 index 524fe5e..0000000 --- a/euscanwww/euscanwww/urls.py +++ /dev/null @@ -1,24 +0,0 @@ -from django.conf import settings -from django.conf.urls import patterns, include, url -from django.contrib import admin -admin.autodiscover() - - -urlpatterns = patterns('', - url(r'^', include('djeuscan.urls')), - - url(r'^admin/', include(admin.site.urls)), - url(r'^accounts/', include('euscan_accounts.urls')), - url(r'^accounts/', include('euscan_captcha.urls')), - url(r'^accounts/', include('registration.backends.default.urls')), -) - - -if settings.DEBUG: - import os - - urlpatterns += patterns('', - url(r'^static/(?P.*)$', 'django.views.static.serve', { - 'document_root': os.path.join(settings.EUSCAN_ROOT, 'htdocs'), - }), - ) diff --git a/euscanwww/euscanwww/wsgi.py b/euscanwww/euscanwww/wsgi.py deleted file mode 100644 index 3c37f1b..0000000 --- a/euscanwww/euscanwww/wsgi.py +++ /dev/null @@ -1,28 +0,0 @@ -""" -WSGI config for {{ project_name }} project. - -This module contains the WSGI application used by Django's development server -and any production WSGI deployments. It should expose a module-level variable -named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover -this application via the ``WSGI_APPLICATION`` setting. - -Usually you will have the standard Django WSGI application here, but it also -might make sense to replace the whole Django WSGI application with a custom one -that later delegates to the Django one. For example, you could introduce WSGI -middleware here, or combine a Django application with an application of another -framework. - -""" -import os - -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "euscanwww.settings") - -# This application object is used by any WSGI server configured to use this -# file. This includes Django's development server, if the WSGI_APPLICATION -# setting points here. -from django.core.wsgi import get_wsgi_application -application = get_wsgi_application() - -# Apply WSGI middleware here. -# from helloworld.wsgi import HelloWorldApplication -# application = HelloWorldApplication(application) diff --git a/euscanwww/htdocs/css/bootstrap.min.css b/euscanwww/htdocs/css/bootstrap.min.css deleted file mode 100644 index b74b454..0000000 --- a/euscanwww/htdocs/css/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v2.0.4 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.127659574%;*margin-left:2.0744680846382977%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.99999998999999%;*width:99.94680850063828%}.row-fluid .span11{width:91.489361693%;*width:91.4361702036383%}.row-fluid .span10{width:82.97872339599999%;*width:82.92553190663828%}.row-fluid .span9{width:74.468085099%;*width:74.4148936096383%}.row-fluid .span8{width:65.95744680199999%;*width:65.90425531263828%}.row-fluid .span7{width:57.446808505%;*width:57.3936170156383%}.row-fluid .span6{width:48.93617020799999%;*width:48.88297871863829%}.row-fluid .span5{width:40.425531911%;*width:40.3723404216383%}.row-fluid .span4{width:31.914893614%;*width:31.8617021246383%}.row-fluid .span3{width:23.404255317%;*width:23.3510638276383%}.row-fluid .span2{width:14.89361702%;*width:14.8404255306383%}.row-fluid .span1{width:6.382978723%;*width:6.329787233638298%}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:""}.container-fluid:after{clear:both}p{margin:0 0 9px}p small{font-size:11px;color:#999}.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{font-size:18px;line-height:27px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eee}.page-header h1{line-height:1}ul,ol{padding:0;margin:0 0 9px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:18px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:18px}dt,dd{line-height:18px}dt{font-weight:bold;line-height:17px}dd{margin-left:9px}.dl-horizontal dt{float:left;width:120px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:18px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}strong{font-weight:bold}em{font-style:italic}.muted{color:#999}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px}blockquote small{display:block;line-height:18px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:18px;font-style:normal;line-height:18px}small{font-size:100%}cite{font-style:normal}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:18px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 18px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:13.5px;color:#999}label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555}input,textarea{width:210px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer}input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}.uneditable-textarea{width:auto;height:auto}select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px}select{width:220px;border:1px solid #bbb}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:930px}input.span11,textarea.span11,.uneditable-input.span11{width:850px}input.span10,textarea.span10,.uneditable-input.span10{width:770px}input.span9,textarea.span9,.uneditable-input.span9{width:690px}input.span8,textarea.span8,.uneditable-input.span8{width:610px}input.span7,textarea.span7,.uneditable-input.span7{width:530px}input.span6,textarea.span6,.uneditable-input.span6{width:450px}input.span5,textarea.span5,.uneditable-input.span5{width:370px}input.span4,textarea.span4,.uneditable-input.span4{width:290px}input.span3,textarea.span3,.uneditable-input.span3{width:210px}input.span2,textarea.span2,.uneditable-input.span2{width:130px}input.span1,textarea.span1,.uneditable-input.span1{width:50px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee;border-color:#ddd}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48}.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:""}.form-actions:after{clear:both}.uneditable-input{overflow:hidden;white-space:nowrap;cursor:not-allowed;background-color:#fff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}:-moz-placeholder{color:#999}:-ms-input-placeholder{color:#999}::-webkit-input-placeholder{color:#999}.help-block,.help-inline{color:#555}.help-block{display:block;margin-bottom:9px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:middle;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{z-index:2}.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc}.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;height:18px;min-width:16px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc}.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .uneditable-input{border-right-color:#ccc;border-left-color:#eee}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:9px}legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:18px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:160px}.form-horizontal .help-block{margin-top:9px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:18px}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0}.icon-white{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:.3;filter:alpha(opacity=30)}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:4px 0;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-ms-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-ms-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 10px 4px;margin-bottom:0;*margin-left:.3em;font-size:13px;line-height:18px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-ms-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:1px}.btn-small{padding:5px 9px;font-size:11px;line-height:16px}.btn-small [class^="icon-"]{margin-top:-1px}.btn-mini{padding:2px 6px;font-size:11px;line-height:14px}.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#ccc;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn-primary{background-color:#0074cc;*background-color:#05c;background-image:-ms-linear-gradient(top,#08c,#05c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#05c));background-image:-webkit-linear-gradient(top,#08c,#05c);background-image:-o-linear-gradient(top,#08c,#05c);background-image:-moz-linear-gradient(top,#08c,#05c);background-image:linear-gradient(top,#08c,#05c);background-repeat:repeat-x;border-color:#05c #05c #003580;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc',endColorstr='#0055cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#05c;*background-color:#004ab3}.btn-primary:active,.btn-primary.active{background-color:#004099 \9}.btn-warning{background-color:#faa732;*background-color:#f89406;background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{background-color:#da4f49;*background-color:#bd362f;background-image:-ms-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#bd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{background-color:#5bb75b;*background-color:#51a351;background-image:-ms-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{background-color:#49afcd;*background-color:#2f96b4;background-image:-ms-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{background-color:#414141;*background-color:#222;background-image:-ms-linear-gradient(top,#555,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#222));background-image:-webkit-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#555555',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-group{position:relative;*margin-left:.3em;*zoom:1}.btn-group:before,.btn-group:after{display:table;content:""}.btn-group:after{clear:both}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:9px;margin-bottom:9px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.dropdown-toggle{*padding-top:4px;padding-right:8px;*padding-bottom:4px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini.dropdown-toggle{padding-right:5px;padding-left:5px}.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px}.btn-group>.btn-large.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#05c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:7px;margin-left:0}.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100)}.btn-mini .caret{margin-top:5px}.btn-small .caret{margin-top:6px}.btn-large .caret{margin-top:6px;border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:.75;filter:alpha(opacity=75)}.alert{padding:8px 35px 8px 14px;margin-bottom:18px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert-heading{color:inherit}.alert .close{position:relative;top:-2px;right:-21px;line-height:18px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:18px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.nav>.dropdown.active>a:hover{color:#000;cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.navbar{*position:relative;*z-index:2;margin-bottom:18px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1)}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar{color:#999}.navbar .brand:hover{text-decoration:none}.navbar .brand{display:block;float:left;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999}.navbar .navbar-text{margin-bottom:0;line-height:40px}.navbar .navbar-link{color:#999}.navbar .navbar-link:hover{color:#fff}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn{margin:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#fff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right}.navbar .nav>li{display:block;float:left}.navbar .nav>li>a{float:none;padding:9px 10px 11px;line-height:19px;color:#999;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar .btn{display:inline-block;padding:4px 10px 4px;margin:5px 5px 6px;line-height:18px}.navbar .btn-group{padding:5px 5px 6px;margin:0}.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:transparent}.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#fff;text-decoration:none;background-color:#222}.navbar .divider-vertical{width:1px;height:40px;margin:0 9px;overflow:hidden;background-color:#222;border-right:1px solid #333}.navbar .nav.pull-right{margin-right:0;margin-left:10px}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;background-color:#2c2c2c;*background-color:#222;background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-image:-moz-linear-gradient(top,#333,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#222;*background-color:#151515}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#080808 \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.active .caret{opacity:1;filter:alpha(opacity=100)}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:transparent}.navbar .nav li.dropdown.active>.dropdown-toggle:hover{color:#fff}.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after{right:13px;left:auto}.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(top,#fff,#f5f5f5);background-repeat:repeat-x;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#999}.breadcrumb .active a{color:#333}.pagination{height:36px;margin:18px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination li{display:inline}.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0}.pagination a:hover,.pagination .active a{background-color:#f5f5f5}.pagination .active a{color:#999;cursor:default}.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999;cursor:default;background-color:transparent}.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin-bottom:18px;margin-left:0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover{color:#999;cursor:default;background-color:#fff}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2070}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1020;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-2px}.tooltip.right{margin-left:2px}.tooltip.bottom{margin-top:2px}.tooltip.left{margin-left:-2px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px}.popover.top{margin-top:-5px}.popover.right{margin-left:5px}.popover.bottom{margin-top:5px}.popover.left{margin-left:-5px}.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.popover .arrow{position:absolute;width:0;height:0}.popover-inner{width:280px;padding:3px;overflow:hidden;background:#000;background:rgba(0,0,0,0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3)}.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.popover-content{padding:14px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:18px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px}.label,.badge{font-size:10.998px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:18px;margin-bottom:18px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-ms-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(top,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{width:0;height:18px;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(top,#149bdf,#0480be);background-image:-ms-linear-gradient(top,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf',endColorstr='#0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-ms-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .bar{background-color:#149bdf;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0)}.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0)}.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0)}.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0)}.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:18px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:18px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-ms-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:10px 15px 5px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden} diff --git a/euscanwww/htdocs/css/style.css b/euscanwww/htdocs/css/style.css deleted file mode 100644 index b87877e..0000000 --- a/euscanwww/htdocs/css/style.css +++ /dev/null @@ -1,244 +0,0 @@ -body { - font-size: 0.8em; - font-family: Dejavu, Verdana, "Bitstream Vera Sans", "Lucida Grande", "Trebuchet MS", sans-serif; - color: #535353; - background: #D2D0D4; -} - -img { - border: none; -} - -h1 { - margin-top: 0; - color: #333; - font-size: 1.6em; - width: 20em; - margin-left: auto; - margin-right: auto; -} - -a:link, a:visited { - text-decoration: none; - font-weight: bold; - color: #ff8c00; -} - -a:hover, a:active { - font-weight: bold; - color: #ff4500; - text-decoration: underline; -} - -#header { - width: 100%; - height: 30px; - margin: 0; - padding: 0; - background: url(../img/gentoo-header-bar-bg.png) repeat-x; - margin-bottom: 20px; -} - -#header #logo { - float: left; -} - -#content { - border: 1px solid #67539B; - background: #FEFEFE; - - padding: 20px; - - min-height: 350px; -} - -.menu { - border: 1px solid #67539B; - background: #8076A1; - color: #FFF; - padding-top: 5px; - padding-bottom: 5px; -} - -.notfirst-menu { - margin-top: 10px; -} - -.menu a { - color: #fff; -} - -.menu li { - list-style-type: none; -} - -.submenu { - padding-left: 15px; -} - -.menu dl { - margin-left: 15px; -} - -.menu dd { - border: none; -} - -a { - color: #3F4C66; -} - -a:link, a:visited, a:active { - color: #3F4C66; - text-decoration: none; -} -a:hover { - color: #4C5C7B; - text-decoration: underline; -} - -abbr:hover { - text-decoration: underline; -} - -pre { - border-left:5px solid; - padding:0.5em 1em; - margin-left:2em; -} - -dt { - font-weight: bold; -} - -dd { - border-left: 1px solid #ccc; - margin: 5px; - padding: 5px; -} - -.table { - width: 60% !important; - margin: auto; -} - -td { - max-width: 350px; -} - -#footer { - background: #8076A1; - font-size: 0.8em; - width: 100%; - margin: 0; - margin-top: 20px; - color: #FFF; -} - -#footer p { - text-align: right; - margin: 5px; -} - -.err, .ok, .inf { - margin: 5px; - margin-left: auto; - margin-right: auto; - width: 70%; - font-weight:bold; - border: 1px dotted #5682AD; -} - -.added { - color: #262; -} - -.removed { - color: #F00; -} - -.err { - border-color: #F00; - color: #F00; -} - -.ok { - border-color: #262; - color: #262; -} - -.logo { - float: right; -} - -.clear { - clear: both; -} - -.package_stat { - width: 40px; - float: right; - height: 5px; - border: 1px solid #ccc; -} - -.package_stat div { - float: left; - height: 5px; -} - -.package_stat .packaged { - background: #85ACFF; -} - -.package_stat .overlay { - background: #C6D9FD; -} - -.package_stat .upstream { - background: #FDEADD; -} - -.log { - max-height: 100pt; - overflow: auto; -} - -.hide { - display: none; -} - -.rounded { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - border-radius: 10px; -} - -.padded { - padding: 10px; -} - -.cursor-pointer { - cursor: pointer; -} - -textarea { - width: inherit; -} - -.errorlist > li { - color: red; - list-style: none; -} - -.errorlist + input { - border: 1px solid red; -} - -.inline { - display: inline; -} - -.padding-bottom10 { - padding-bottom: 10px; -} diff --git a/euscanwww/htdocs/css/table.css b/euscanwww/htdocs/css/table.css deleted file mode 100644 index d59a217..0000000 --- a/euscanwww/htdocs/css/table.css +++ /dev/null @@ -1,336 +0,0 @@ -/* - * File: demo_table.css - * CVS: $Id$ - * Description: CSS descriptions for DataTables demo pages - * Author: Allan Jardine - * Created: Tue May 12 06:47:22 BST 2009 - * Modified: $Date$ by $Author$ - * Language: CSS - * Project: DataTables - * - * Copyright 2009 Allan Jardine. All Rights Reserved. - * - * *************************************************************************** - * DESCRIPTION - * - * The styles given here are suitable for the demos that are used with the standard DataTables - * distribution (see www.datatables.net). You will most likely wish to modify these styles to - * meet the layout requirements of your site. - * - * Common issues: - * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is - * no conflict between the two pagination types. If you want to use full_numbers pagination - * ensure that you either have "example_alt_pagination" as a body class name, or better yet, - * modify that selector. - * Note that the path used for Images is relative. All images are by default located in - * ../img/ - relative to this CSS file. - */ - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables features - */ - -.dataTables_wrapper { - position: relative; - min-height: 302px; - clear: both; - _height: 302px; - zoom: 1; /* Feeling sorry for IE */ -} - -.dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 250px; - height: 30px; - margin-left: -125px; - margin-top: -15px; - padding: 14px 0 2px 0; - border: 1px solid #ddd; - text-align: center; - color: #999; - font-size: 14px; - background-color: white; -} - -.dataTables_length { - width: 40%; - float: left; -} - -.dataTables_filter { - width: 50%; - float: right; - text-align: right; -} - -.dataTables_info { - width: 60%; - float: left; -} - -.dataTables_paginate { - width: 44px; - * width: 50px; - float: right; - text-align: right; -} - -/* Pagination nested */ -.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next { - height: 19px; - width: 19px; - margin-left: 3px; - float: left; -} - -.paginate_disabled_previous { - background-image: url('../img/back_disabled.jpg'); -} - -.paginate_enabled_previous { - background-image: url('../img/back_enabled.jpg'); -} - -.paginate_disabled_next { - background-image: url('../img/forward_disabled.jpg'); -} - -.paginate_enabled_next { - background-image: url('../img/forward_enabled.jpg'); -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables display - */ -table.display { - margin: 0 auto; - clear: both; - width: 100%; - - /* Note Firefox 3.5 and before have a bug with border-collapse - * ( https://bugzilla.mozilla.org/show%5Fbug.cgi?id=155955 ) - * border-spacing: 0; is one possible option. Conditional-css.com is - * useful for this kind of thing - * - * Further note IE 6/7 has problems when calculating widths with border width. - * It subtracts one px relative to the other browsers from the first column, and - * adds one to the end... - * - * If you want that effect I'd suggest setting a border-top/left on th/td's and - * then filling in the gaps with other borders. - */ -} - -table.display thead th { - padding: 3px 18px 3px 10px; - border-bottom: 1px solid black; - font-weight: bold; - cursor: pointer; - * cursor: hand; -} - -table.display tfoot th { - padding: 3px 18px 3px 10px; - border-top: 1px solid black; - font-weight: bold; -} - -table.display tr.heading2 td { - border-bottom: 1px solid #aaa; -} - -table.display td { - padding: 3px 10px; -} - -table.display td.center { - text-align: center; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables sorting - */ - -.sorting_asc { - background: url('../img/sort_asc.png') no-repeat center right; -} - -.sorting_desc { - background: url('../img/sort_desc.png') no-repeat center right; -} - -.sorting { - background: url('../img/sort_both.png') no-repeat center right; -} - -.sorting_asc_disabled { - background: url('../img/sort_asc_disabled.png') no-repeat center right; -} - -.sorting_desc_disabled { - background: url('../img/sort_desc_disabled.png') no-repeat center right; -} - - - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables row classes - */ -table.display td.bad { - background-color: #FFDFDF; -} - -table.display td.ugly { - background-color: #EDB9B9; -} - -tr { - background-color: #E2E4FF; -} - -tr.even { - background-color: white; -} - - - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Misc - */ -.dataTables_scroll { - clear: both; -} - -.dataTables_scrollBody { - *margin-top: -1px; -} - -.top, .bottom { - padding: 15px; - background-color: #F5F5F5; - border: 1px solid #CCCCCC; -} - -.top .dataTables_info { - float: none; -} - -.clear { - clear: both; -} - -.dataTables_empty { - text-align: center; -} - -tfoot input { - margin: 0.5em 0; - width: 100%; - color: #444; -} - -tfoot input.search_init { - color: #999; -} - -td.group { - background-color: #d1cfd0; - border-bottom: 2px solid #A19B9E; - border-top: 2px solid #A19B9E; -} - -td.details { - background-color: #d1cfd0; - border: 2px solid #A19B9E; -} - - -.example_alt_pagination div.dataTables_info { - width: 40%; -} - -.paging_full_numbers { - width: 400px; - height: 22px; - line-height: 22px; -} - -.paging_full_numbers span.paginate_button, - .paging_full_numbers span.paginate_active { - border: 1px solid #aaa; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - padding: 2px 5px; - margin: 0 3px; - cursor: pointer; - *cursor: hand; -} - -.paging_full_numbers span.paginate_button { - background-color: #ddd; -} - -.paging_full_numbers span.paginate_button:hover { - background-color: #ccc; -} - -.paging_full_numbers span.paginate_active { - background-color: #99B3FF; -} - -table.display tr.row_selected td { - background-color: #9FAFD1; -} - -/* - * Row highlighting example - */ -tbody tr:hover, #example tbody tr td.highlighted { - background-color: #E6FF99; -} - -tr:hover { - background-color: #ECFFB3; -} - -tr:hover td.sorting_1 { - background-color: #DDFF75; -} - -tr:hover td.sorting_2 { - background-color: #E7FF9E; -} - -tr:hover td.sorting_3 { - background-color: #E2FF89; -} - - -/* - * KeyTable - */ -table.KeyTable td { - border: 3px solid transparent; -} - -table.KeyTable td.focus { - border: 3px solid #3366FF; -} - -div.box { - height: 100px; - padding: 10px; - overflow: auto; - border: 1px solid #8080FF; - background-color: #E5E5FF; -} diff --git a/euscanwww/htdocs/css/toggle_buttons.css b/euscanwww/htdocs/css/toggle_buttons.css deleted file mode 100644 index c884ba4..0000000 --- a/euscanwww/htdocs/css/toggle_buttons.css +++ /dev/null @@ -1,155 +0,0 @@ -/* line 11, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button { - display: inline-block; - cursor: pointer; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - -ms-border-radius: 5px; - -o-border-radius: 5px; - border-radius: 5px; - border: 1px solid; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - position: relative; - text-align: left; - overflow: hidden; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -/* line 29, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button.deactivate { - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); - opacity: 0.5; - cursor: default !important; -} -/* line 32, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button.deactivate label, .toggle-button.deactivate span { - cursor: default !important; -} -/* line 36, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button > div { - display: inline-block; - width: 150px; - position: absolute; - top: 0; -} -/* line 41, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button > div.disabled { - left: -50%; -} -/* line 45, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button input[type=checkbox] { - display: none; -} -/* line 53, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span, .toggle-button label { - cursor: pointer; - position: relative; - float: left; - display: inline-block; -} -/* line 60, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button label { - background: #fefefe; - margin-left: -4px; - margin-right: -4px; - border: 1px solid #E6E6E6; - margin-top: -1px; - z-index: 100; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fefefe), color-stop(100%, #e6e6e6)); - background-image: -webkit-linear-gradient(top, #fefefe, #e6e6e6); - background-image: -moz-linear-gradient(top, #fefefe, #e6e6e6); - background-image: -o-linear-gradient(top, #fefefe, #e6e6e6); - background-image: linear-gradient(top, #fefefe, #e6e6e6); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -ms-border-radius: 4px; - -o-border-radius: 4px; - border-radius: 4px; -} -/* line 72, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span { - color: #fefefe; - text-align: center; - font-weight: bold; - z-index: 1; -} -/* line 78, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span.labelLeft { - -moz-border-radius-topleft: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - padding-left: 3px; -} -/* line 83, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span.labelRight { - -moz-border-radius-topright: 4px; - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - color: black; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fefefe), color-stop(100%, #e6e6e6)); - background-image: -webkit-linear-gradient(top, #fefefe, #e6e6e6); - background-image: -moz-linear-gradient(top, #fefefe, #e6e6e6); - background-image: -o-linear-gradient(top, #fefefe, #e6e6e6); - background-image: linear-gradient(top, #fefefe, #e6e6e6); - padding-right: 3px; -} -/* line 91, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span.primary, .toggle-button span.labelLeft { - color: #fefefe; - background: #0088cc; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #0088cc), color-stop(100%, #0055cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0055cc); - background-image: -moz-linear-gradient(top, #0088cc, #0055cc); - background-image: -o-linear-gradient(top, #0088cc, #0055cc); - background-image: linear-gradient(top, #0088cc, #0055cc); -} -/* line 96, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span.info { - color: #fefefe; - background: #5bc0de; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5bc0de), color-stop(100%, #2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(top, #5bc0de, #2f96b4); -} -/* line 102, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span.success { - color: #fefefe; - background: #62c462; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #62c462), color-stop(100%, #51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(top, #62c462, #51a351); -} -/* line 108, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span.warning { - color: #fefefe; - background: #dbb450; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #dbb450), color-stop(100%, #f89406)); - background-image: -webkit-linear-gradient(top, #dbb450, #f89406); - background-image: -moz-linear-gradient(top, #dbb450, #f89406); - background-image: -o-linear-gradient(top, #dbb450, #f89406); - background-image: linear-gradient(top, #dbb450, #f89406); -} -/* line 114, ../sass/bootstrap-toggle-buttons.scss */ -.toggle-button span.danger { - color: #fefefe; - background: #ee5f5b; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ee5f5b), color-stop(100%, #bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(top, #ee5f5b, #bd362f); -} diff --git a/euscanwww/htdocs/favicon.ico b/euscanwww/htdocs/favicon.ico deleted file mode 100644 index 4d4e9fb..0000000 Binary files a/euscanwww/htdocs/favicon.ico and /dev/null differ diff --git a/euscanwww/htdocs/img/back_disabled.jpg b/euscanwww/htdocs/img/back_disabled.jpg deleted file mode 100644 index 1e73a54..0000000 Binary files a/euscanwww/htdocs/img/back_disabled.jpg and /dev/null differ diff --git a/euscanwww/htdocs/img/back_enabled.jpg b/euscanwww/htdocs/img/back_enabled.jpg deleted file mode 100644 index a6d764c..0000000 Binary files a/euscanwww/htdocs/img/back_enabled.jpg and /dev/null differ diff --git a/euscanwww/htdocs/img/bug.png b/euscanwww/htdocs/img/bug.png deleted file mode 100644 index c33bfb9..0000000 Binary files a/euscanwww/htdocs/img/bug.png and /dev/null differ diff --git a/euscanwww/htdocs/img/django.png b/euscanwww/htdocs/img/django.png deleted file mode 100644 index e1bd216..0000000 Binary files a/euscanwww/htdocs/img/django.png and /dev/null differ diff --git a/euscanwww/htdocs/img/feed.png b/euscanwww/htdocs/img/feed.png deleted file mode 100644 index 207206f..0000000 Binary files a/euscanwww/htdocs/img/feed.png and /dev/null differ diff --git a/euscanwww/htdocs/img/forward_disabled.jpg b/euscanwww/htdocs/img/forward_disabled.jpg deleted file mode 100644 index 28a9dc5..0000000 Binary files a/euscanwww/htdocs/img/forward_disabled.jpg and /dev/null differ diff --git a/euscanwww/htdocs/img/forward_enabled.jpg b/euscanwww/htdocs/img/forward_enabled.jpg deleted file mode 100644 index 598c075..0000000 Binary files a/euscanwww/htdocs/img/forward_enabled.jpg and /dev/null differ diff --git a/euscanwww/htdocs/img/freshness-icon.png b/euscanwww/htdocs/img/freshness-icon.png deleted file mode 100644 index 6af3b72..0000000 Binary files a/euscanwww/htdocs/img/freshness-icon.png and /dev/null differ diff --git a/euscanwww/htdocs/img/gentoo-header-bar-bg.png b/euscanwww/htdocs/img/gentoo-header-bar-bg.png deleted file mode 100644 index 9e7b3c2..0000000 Binary files a/euscanwww/htdocs/img/gentoo-header-bar-bg.png and /dev/null differ diff --git a/euscanwww/htdocs/img/gentoo-icon.png b/euscanwww/htdocs/img/gentoo-icon.png deleted file mode 100644 index 414e00c..0000000 Binary files a/euscanwww/htdocs/img/gentoo-icon.png and /dev/null differ diff --git a/euscanwww/htdocs/img/gentoo.png b/euscanwww/htdocs/img/gentoo.png deleted file mode 100644 index d6533d7..0000000 Binary files a/euscanwww/htdocs/img/gentoo.png and /dev/null differ diff --git a/euscanwww/htdocs/img/gentoo_org.png b/euscanwww/htdocs/img/gentoo_org.png deleted file mode 100644 index a790fe9..0000000 Binary files a/euscanwww/htdocs/img/gentoo_org.png and /dev/null differ diff --git a/euscanwww/htdocs/img/linux.png b/euscanwww/htdocs/img/linux.png deleted file mode 100644 index 2a4f2e4..0000000 Binary files a/euscanwww/htdocs/img/linux.png and /dev/null differ diff --git a/euscanwww/htdocs/img/metadata.png b/euscanwww/htdocs/img/metadata.png deleted file mode 100644 index 363f51b..0000000 Binary files a/euscanwww/htdocs/img/metadata.png and /dev/null differ diff --git a/euscanwww/htdocs/img/overlay-icon.png b/euscanwww/htdocs/img/overlay-icon.png deleted file mode 100644 index 8347aa8..0000000 Binary files a/euscanwww/htdocs/img/overlay-icon.png and /dev/null differ diff --git a/euscanwww/htdocs/img/python.png b/euscanwww/htdocs/img/python.png deleted file mode 100644 index 51c3385..0000000 Binary files a/euscanwww/htdocs/img/python.png and /dev/null differ diff --git a/euscanwww/htdocs/img/refresh-active.png b/euscanwww/htdocs/img/refresh-active.png deleted file mode 100644 index 6306868..0000000 Binary files a/euscanwww/htdocs/img/refresh-active.png and /dev/null differ diff --git a/euscanwww/htdocs/img/refresh-inactive.png b/euscanwww/htdocs/img/refresh-inactive.png deleted file mode 100644 index 7e8585f..0000000 Binary files a/euscanwww/htdocs/img/refresh-inactive.png and /dev/null differ diff --git a/euscanwww/htdocs/img/sort_asc.png b/euscanwww/htdocs/img/sort_asc.png deleted file mode 100644 index a56d0e2..0000000 Binary files a/euscanwww/htdocs/img/sort_asc.png and /dev/null differ diff --git a/euscanwww/htdocs/img/sort_asc_disabled.png b/euscanwww/htdocs/img/sort_asc_disabled.png deleted file mode 100644 index b7e621e..0000000 Binary files a/euscanwww/htdocs/img/sort_asc_disabled.png and /dev/null differ diff --git a/euscanwww/htdocs/img/sort_both.png b/euscanwww/htdocs/img/sort_both.png deleted file mode 100644 index 839ac4b..0000000 Binary files a/euscanwww/htdocs/img/sort_both.png and /dev/null differ diff --git a/euscanwww/htdocs/img/sort_desc.png b/euscanwww/htdocs/img/sort_desc.png deleted file mode 100644 index 90b2951..0000000 Binary files a/euscanwww/htdocs/img/sort_desc.png and /dev/null differ diff --git a/euscanwww/htdocs/img/sort_desc_disabled.png b/euscanwww/htdocs/img/sort_desc_disabled.png deleted file mode 100644 index 2409653..0000000 Binary files a/euscanwww/htdocs/img/sort_desc_disabled.png and /dev/null differ diff --git a/euscanwww/htdocs/img/unstable-icon.png b/euscanwww/htdocs/img/unstable-icon.png deleted file mode 100644 index f0323e5..0000000 Binary files a/euscanwww/htdocs/img/unstable-icon.png and /dev/null differ diff --git a/euscanwww/htdocs/img/unwatch-icon.png b/euscanwww/htdocs/img/unwatch-icon.png deleted file mode 100644 index c4f0b59..0000000 Binary files a/euscanwww/htdocs/img/unwatch-icon.png and /dev/null differ diff --git a/euscanwww/htdocs/img/upstream-icon.png b/euscanwww/htdocs/img/upstream-icon.png deleted file mode 100644 index 862134d..0000000 Binary files a/euscanwww/htdocs/img/upstream-icon.png and /dev/null differ diff --git a/euscanwww/htdocs/img/watch-icon.png b/euscanwww/htdocs/img/watch-icon.png deleted file mode 100644 index 28ae542..0000000 Binary files a/euscanwww/htdocs/img/watch-icon.png and /dev/null differ diff --git a/euscanwww/htdocs/js/favourite.js b/euscanwww/htdocs/js/favourite.js deleted file mode 100644 index e8c80b6..0000000 --- a/euscanwww/htdocs/js/favourite.js +++ /dev/null @@ -1,23 +0,0 @@ -$(document).ready(function() { - $(".favourite-form").submit(function(e) { - e.preventDefault(); - e.stopPropagation(); - - $.post($(this).attr("action"), {packages: window.packages}, function() { - $(".unfavourite-button").removeClass("hide"); - $(".favourite-button").addClass("hide"); - }); - return false; - }); - - $(".unfavourite-form").submit(function(e) { - e.preventDefault(); - e.stopPropagation(); - - $.post($(this).attr("action"), {packages: window.packages}, function() { - $(".favourite-button").removeClass("hide"); - $(".unfavourite-button").addClass("hide"); - }); - return false; - }); -}); diff --git a/euscanwww/htdocs/js/jquery.dataTables.js b/euscanwww/htdocs/js/jquery.dataTables.js deleted file mode 100644 index 581222e..0000000 --- a/euscanwww/htdocs/js/jquery.dataTables.js +++ /dev/null @@ -1,6862 +0,0 @@ -/* - * File: jquery.dataTables.js - * Version: 1.7.6 - * Description: Paginate, search and sort HTML tables - * Author: Allan Jardine (www.sprymedia.co.uk) - * Created: 28/3/2008 - * Language: Javascript - * License: GPL v2 or BSD 3 point style - * Project: Mtaala - * Contact: allan.jardine@sprymedia.co.uk - * - * Copyright 2008-2010 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, as supplied with this software. - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/* - * When considering jsLint, we need to allow eval() as it it is used for reading cookies and - * building the dynamic multi-column sort functions. - */ -/*jslint evil: true, undef: true, browser: true */ -/*globals $, jQuery,_fnExternApiFunc,_fnInitalise,_fnInitComplete,_fnLanguageProcess,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnGatherData,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxUpdateDraw,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnArrayCmp,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap*/ - -(function($, window, document) { - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Section - DataTables variables - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* - * Variable: dataTableSettings - * Purpose: Store the settings for each dataTables instance - * Scope: jQuery.fn - */ - $.fn.dataTableSettings = []; - var _aoSettings = $.fn.dataTableSettings; /* Short reference for fast internal lookup */ - - /* - * Variable: dataTableExt - * Purpose: Container for customisable parts of DataTables - * Scope: jQuery.fn - */ - $.fn.dataTableExt = {}; - var _oExt = $.fn.dataTableExt; - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Section - DataTables extensible objects - * - * The _oExt object is used to provide an area where user dfined plugins can be - * added to DataTables. The following properties of the object are used: - * oApi - Plug-in API functions - * aTypes - Auto-detection of types - * oSort - Sorting functions used by DataTables (based on the type) - * oPagination - Pagination functions for different input styles - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* - * Variable: sVersion - * Purpose: Version string for plug-ins to check compatibility - * Scope: jQuery.fn.dataTableExt - * Notes: Allowed format is a.b.c.d.e where: - * a:int, b:int, c:int, d:string(dev|beta), e:int. d and e are optional - */ - _oExt.sVersion = "1.7.6"; - - /* - * Variable: sErrMode - * Purpose: How should DataTables report an error. Can take the value 'alert' or 'throw' - * Scope: jQuery.fn.dataTableExt - */ - _oExt.sErrMode = "alert"; - - /* - * Variable: iApiIndex - * Purpose: Index for what 'this' index API functions should use - * Scope: jQuery.fn.dataTableExt - */ - _oExt.iApiIndex = 0; - - /* - * Variable: oApi - * Purpose: Container for plugin API functions - * Scope: jQuery.fn.dataTableExt - */ - _oExt.oApi = { }; - - /* - * Variable: aFiltering - * Purpose: Container for plugin filtering functions - * Scope: jQuery.fn.dataTableExt - */ - _oExt.afnFiltering = [ ]; - - /* - * Variable: aoFeatures - * Purpose: Container for plugin function functions - * Scope: jQuery.fn.dataTableExt - * Notes: Array of objects with the following parameters: - * fnInit: Function for initialisation of Feature. Takes oSettings and returns node - * cFeature: Character that will be matched in sDom - case sensitive - * sFeature: Feature name - just for completeness :-) - */ - _oExt.aoFeatures = [ ]; - - /* - * Variable: ofnSearch - * Purpose: Container for custom filtering functions - * Scope: jQuery.fn.dataTableExt - * Notes: This is an object (the name should match the type) for custom filtering function, - * which can be used for live DOM checking or formatted text filtering - */ - _oExt.ofnSearch = { }; - - /* - * Variable: afnSortData - * Purpose: Container for custom sorting data source functions - * Scope: jQuery.fn.dataTableExt - * Notes: Array (associative) of functions which is run prior to a column of this - * 'SortDataType' being sorted upon. - * Function input parameters: - * object:oSettings- DataTables settings object - * int:iColumn - Target column number - * Return value: Array of data which exactly matched the full data set size for the column to - * be sorted upon - */ - _oExt.afnSortData = [ ]; - - /* - * Variable: oStdClasses - * Purpose: Storage for the various classes that DataTables uses - * Scope: jQuery.fn.dataTableExt - */ - _oExt.oStdClasses = { - /* Two buttons buttons */ - "sPagePrevEnabled": "paginate_enabled_previous", - "sPagePrevDisabled": "paginate_disabled_previous", - "sPageNextEnabled": "paginate_enabled_next", - "sPageNextDisabled": "paginate_disabled_next", - "sPageJUINext": "", - "sPageJUIPrev": "", - - /* Full numbers paging buttons */ - "sPageButton": "paginate_button", - "sPageButtonActive": "paginate_active", - "sPageButtonStaticDisabled": "paginate_button", - "sPageFirst": "first", - "sPagePrevious": "previous", - "sPageNext": "next", - "sPageLast": "last", - - /* Stripping classes */ - "sStripOdd": "odd", - "sStripEven": "even", - - /* Empty row */ - "sRowEmpty": "dataTables_empty", - - /* Features */ - "sWrapper": "dataTables_wrapper", - "sFilter": "dataTables_filter", - "sInfo": "dataTables_info", - "sPaging": "dataTables_paginate paging_", /* Note that the type is postfixed */ - "sLength": "dataTables_length", - "sProcessing": "dataTables_processing", - - /* Sorting */ - "sSortAsc": "sorting_asc", - "sSortDesc": "sorting_desc", - "sSortable": "sorting", /* Sortable in both directions */ - "sSortableAsc": "sorting_asc_disabled", - "sSortableDesc": "sorting_desc_disabled", - "sSortableNone": "sorting_disabled", - "sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */ - "sSortJUIAsc": "", - "sSortJUIDesc": "", - "sSortJUI": "", - "sSortJUIAscAllowed": "", - "sSortJUIDescAllowed": "", - "sSortJUIWrapper": "", - - /* Scrolling */ - "sScrollWrapper": "dataTables_scroll", - "sScrollHead": "dataTables_scrollHead", - "sScrollHeadInner": "dataTables_scrollHeadInner", - "sScrollBody": "dataTables_scrollBody", - "sScrollFoot": "dataTables_scrollFoot", - "sScrollFootInner": "dataTables_scrollFootInner", - - /* Misc */ - "sFooterTH": "" - }; - - /* - * Variable: oJUIClasses - * Purpose: Storage for the various classes that DataTables uses - jQuery UI suitable - * Scope: jQuery.fn.dataTableExt - */ - _oExt.oJUIClasses = { - /* Two buttons buttons */ - "sPagePrevEnabled": "fg-button ui-button ui-state-default ui-corner-left", - "sPagePrevDisabled": "fg-button ui-button ui-state-default ui-corner-left ui-state-disabled", - "sPageNextEnabled": "fg-button ui-button ui-state-default ui-corner-right", - "sPageNextDisabled": "fg-button ui-button ui-state-default ui-corner-right ui-state-disabled", - "sPageJUINext": "ui-icon ui-icon-circle-arrow-e", - "sPageJUIPrev": "ui-icon ui-icon-circle-arrow-w", - - /* Full numbers paging buttons */ - "sPageButton": "fg-button ui-button ui-state-default", - "sPageButtonActive": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageButtonStaticDisabled": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageFirst": "first ui-corner-tl ui-corner-bl", - "sPagePrevious": "previous", - "sPageNext": "next", - "sPageLast": "last ui-corner-tr ui-corner-br", - - /* Stripping classes */ - "sStripOdd": "odd", - "sStripEven": "even", - - /* Empty row */ - "sRowEmpty": "dataTables_empty", - - /* Features */ - "sWrapper": "dataTables_wrapper", - "sFilter": "dataTables_filter", - "sInfo": "dataTables_info", - "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+ - "ui-buttonset-multi paging_", /* Note that the type is postfixed */ - "sLength": "dataTables_length", - "sProcessing": "dataTables_processing", - - /* Sorting */ - "sSortAsc": "ui-state-default", - "sSortDesc": "ui-state-default", - "sSortable": "ui-state-default", - "sSortableAsc": "ui-state-default", - "sSortableDesc": "ui-state-default", - "sSortableNone": "ui-state-default", - "sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */ - "sSortJUIAsc": "css_right ui-icon ui-icon-triangle-1-n", - "sSortJUIDesc": "css_right ui-icon ui-icon-triangle-1-s", - "sSortJUI": "css_right ui-icon ui-icon-carat-2-n-s", - "sSortJUIAscAllowed": "css_right ui-icon ui-icon-carat-1-n", - "sSortJUIDescAllowed": "css_right ui-icon ui-icon-carat-1-s", - "sSortJUIWrapper": "DataTables_sort_wrapper", - - /* Scrolling */ - "sScrollWrapper": "dataTables_scroll", - "sScrollHead": "dataTables_scrollHead ui-state-default", - "sScrollHeadInner": "dataTables_scrollHeadInner", - "sScrollBody": "dataTables_scrollBody", - "sScrollFoot": "dataTables_scrollFoot ui-state-default", - "sScrollFootInner": "dataTables_scrollFootInner", - - /* Misc */ - "sFooterTH": "ui-state-default" - }; - - /* - * Variable: oPagination - * Purpose: Container for the various type of pagination that dataTables supports - * Scope: jQuery.fn.dataTableExt - */ - _oExt.oPagination = { - /* - * Variable: two_button - * Purpose: Standard two button (forward/back) pagination - * Scope: jQuery.fn.dataTableExt.oPagination - */ - "two_button": { - /* - * Function: oPagination.two_button.fnInit - * Purpose: Initalise dom elements required for pagination with forward/back buttons only - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * node:nPaging - the DIV which contains this pagination control - * function:fnCallbackDraw - draw function which must be called on update - */ - "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) - { - var nPrevious, nNext, nPreviousInner, nNextInner; - - /* Store the next and previous elements in the oSettings object as they can be very - * usful for automation - particularly testing - */ - if ( !oSettings.bJUI ) - { - nPrevious = document.createElement( 'div' ); - nNext = document.createElement( 'div' ); - } - else - { - nPrevious = document.createElement( 'a' ); - nNext = document.createElement( 'a' ); - - nNextInner = document.createElement('span'); - nNextInner.className = oSettings.oClasses.sPageJUINext; - nNext.appendChild( nNextInner ); - - nPreviousInner = document.createElement('span'); - nPreviousInner.className = oSettings.oClasses.sPageJUIPrev; - nPrevious.appendChild( nPreviousInner ); - } - - nPrevious.className = oSettings.oClasses.sPagePrevDisabled; - nNext.className = oSettings.oClasses.sPageNextDisabled; - - nPrevious.title = oSettings.oLanguage.oPaginate.sPrevious; - nNext.title = oSettings.oLanguage.oPaginate.sNext; - - nPaging.appendChild( nPrevious ); - nPaging.appendChild( nNext ); - - $(nPrevious).bind( 'click.DT', function() { - if ( oSettings.oApi._fnPageChange( oSettings, "previous" ) ) - { - /* Only draw when the page has actually changed */ - fnCallbackDraw( oSettings ); - } - } ); - - $(nNext).bind( 'click.DT', function() { - if ( oSettings.oApi._fnPageChange( oSettings, "next" ) ) - { - fnCallbackDraw( oSettings ); - } - } ); - - /* Take the brutal approach to cancelling text selection */ - $(nPrevious).bind( 'selectstart.DT', function () { return false; } ); - $(nNext).bind( 'selectstart.DT', function () { return false; } ); - - /* ID the first elements only */ - if ( oSettings.sTableId !== '' && typeof oSettings.aanFeatures.p == "undefined" ) - { - nPaging.setAttribute( 'id', oSettings.sTableId+'_paginate' ); - nPrevious.setAttribute( 'id', oSettings.sTableId+'_previous' ); - nNext.setAttribute( 'id', oSettings.sTableId+'_next' ); - } - }, - - /* - * Function: oPagination.two_button.fnUpdate - * Purpose: Update the two button pagination at the end of the draw - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * function:fnCallbackDraw - draw function to call on page change - */ - "fnUpdate": function ( oSettings, fnCallbackDraw ) - { - if ( !oSettings.aanFeatures.p ) - { - return; - } - - /* Loop over each instance of the pager */ - var an = oSettings.aanFeatures.p; - for ( var i=0, iLen=an.length ; i= (iPages - iPageCountHalf)) - { - iStartButton = iPages - iPageCount + 1; - iEndButton = iPages; - } - else - { - iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; - iEndButton = iStartButton + iPageCount - 1; - } - } - } - - /* Build the dynamic list */ - for ( i=iStartButton ; i<=iEndButton ; i++ ) - { - if ( iCurrentPage != i ) - { - sList += ''+i+''; - } - else - { - sList += ''+i+''; - } - } - - /* Loop over each instance of the pager */ - var an = oSettings.aanFeatures.p; - var anButtons, anStatic, nPaginateList; - var fnClick = function() { - /* Use the information in the element to jump to the required page */ - var iTarget = (this.innerHTML * 1) - 1; - oSettings._iDisplayStart = iTarget * oSettings._iDisplayLength; - fnCallbackDraw( oSettings ); - return false; - }; - var fnFalse = function () { return false; }; - - for ( i=0, iLen=an.length ; i y) ? 1 : 0)); - }, - - "string-desc": function ( a, b ) - { - var x = a.toLowerCase(); - var y = b.toLowerCase(); - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * html sorting (ignore html tags) - */ - "html-asc": function ( a, b ) - { - var x = a.replace( /<.*?>/g, "" ).toLowerCase(); - var y = b.replace( /<.*?>/g, "" ).toLowerCase(); - return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - }, - - "html-desc": function ( a, b ) - { - var x = a.replace( /<.*?>/g, "" ).toLowerCase(); - var y = b.replace( /<.*?>/g, "" ).toLowerCase(); - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * date sorting - */ - "date-asc": function ( a, b ) - { - var x = Date.parse( a ); - var y = Date.parse( b ); - - if ( isNaN(x) || x==="" ) - { - x = Date.parse( "01/01/1970 00:00:00" ); - } - if ( isNaN(y) || y==="" ) - { - y = Date.parse( "01/01/1970 00:00:00" ); - } - - return x - y; - }, - - "date-desc": function ( a, b ) - { - var x = Date.parse( a ); - var y = Date.parse( b ); - - if ( isNaN(x) || x==="" ) - { - x = Date.parse( "01/01/1970 00:00:00" ); - } - if ( isNaN(y) || y==="" ) - { - y = Date.parse( "01/01/1970 00:00:00" ); - } - - return y - x; - }, - - - /* - * numerical sorting - */ - "numeric-asc": function ( a, b ) - { - var x = (a=="-" || a==="") ? 0 : a*1; - var y = (b=="-" || b==="") ? 0 : b*1; - return x - y; - }, - - "numeric-desc": function ( a, b ) - { - var x = (a=="-" || a==="") ? 0 : a*1; - var y = (b=="-" || b==="") ? 0 : b*1; - return y - x; - } - }; - - - /* - * Variable: aTypes - * Purpose: Container for the various type of type detection that dataTables supports - * Scope: jQuery.fn.dataTableExt - * Notes: The functions in this array are expected to parse a string to see if it is a data - * type that it recognises. If so then the function should return the name of the type (a - * corresponding sort function should be defined!), if the type is not recognised then the - * function should return null such that the parser and move on to check the next type. - * Note that ordering is important in this array - the functions are processed linearly, - * starting at index 0. - * Note that the input for these functions is always a string! It cannot be any other data - * type - */ - _oExt.aTypes = [ - /* - * Function: - - * Purpose: Check to see if a string is numeric - * Returns: string:'numeric' or null - * Inputs: string:sText - string to check - */ - function ( sData ) - { - /* Allow zero length strings as a number */ - if ( sData.length === 0 ) - { - return 'numeric'; - } - - var sValidFirstChars = "0123456789-"; - var sValidChars = "0123456789."; - var Char; - var bDecimal = false; - - /* Check for a valid first char (no period and allow negatives) */ - Char = sData.charAt(0); - if (sValidFirstChars.indexOf(Char) == -1) - { - return null; - } - - /* Check all the other characters are valid */ - for ( var i=1 ; i') != -1 ) - { - return 'html'; - } - return null; - } - ]; - - /* - * Function: fnVersionCheck - * Purpose: Check a version string against this version of DataTables. Useful for plug-ins - * Returns: bool:true -this version of DataTables is greater or equal to the required version - * false -this version of DataTales is not suitable - * Inputs: string:sVersion - the version to check against. May be in the following formats: - * "a", "a.b" or "a.b.c" - * Notes: This function will only check the first three parts of a version string. It is - * assumed that beta and dev versions will meet the requirements. This might change in future - */ - _oExt.fnVersionCheck = function( sVersion ) - { - /* This is cheap, but very effective */ - var fnZPad = function (Zpad, count) - { - while(Zpad.length < count) { - Zpad += '0'; - } - return Zpad; - }; - var aThis = _oExt.sVersion.split('.'); - var aThat = sVersion.split('.'); - var sThis = '', sThat = ''; - - for ( var i=0, iLen=aThat.length ; i= parseInt(sThat, 10); - }; - - /* - * Variable: _oExternConfig - * Purpose: Store information for DataTables to access globally about other instances - * Scope: jQuery.fn.dataTableExt - */ - _oExt._oExternConfig = { - /* int:iNextUnique - next unique number for an instance */ - "iNextUnique": 0 - }; - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Section - DataTables prototype - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* - * Function: dataTable - * Purpose: DataTables information - * Returns: - - * Inputs: object:oInit - initalisation options for the table - */ - $.fn.dataTable = function( oInit ) - { - /* - * Function: classSettings - * Purpose: Settings container function for all 'class' properties which are required - * by dataTables - * Returns: - - * Inputs: - - */ - function classSettings () - { - this.fnRecordsTotal = function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsTotal, 10); - } else { - return this.aiDisplayMaster.length; - } - }; - - this.fnRecordsDisplay = function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsDisplay, 10); - } else { - return this.aiDisplay.length; - } - }; - - this.fnDisplayEnd = function () - { - if ( this.oFeatures.bServerSide ) { - if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) { - return this._iDisplayStart+this.aiDisplay.length; - } else { - return Math.min( this._iDisplayStart+this._iDisplayLength, - this._iRecordsDisplay ); - } - } else { - return this._iDisplayEnd; - } - }; - - /* - * Variable: oInstance - * Purpose: The DataTables object for this table - * Scope: jQuery.dataTable.classSettings - */ - this.oInstance = null; - - /* - * Variable: sInstance - * Purpose: Unique idendifier for each instance of the DataTables object - * Scope: jQuery.dataTable.classSettings - */ - this.sInstance = null; - - /* - * Variable: oFeatures - * Purpose: Indicate the enablement of key dataTable features - * Scope: jQuery.dataTable.classSettings - */ - this.oFeatures = { - "bPaginate": true, - "bLengthChange": true, - "bFilter": true, - "bSort": true, - "bInfo": true, - "bAutoWidth": true, - "bProcessing": false, - "bSortClasses": true, - "bStateSave": false, - "bServerSide": false - }; - - /* - * Variable: oScroll - * Purpose: Container for scrolling options - * Scope: jQuery.dataTable.classSettings - */ - this.oScroll = { - "sX": "", - "sXInner": "", - "sY": "", - "bCollapse": false, - "bInfinite": false, - "iLoadGap": 100, - "iBarWidth": 0, - "bAutoCss": true - }; - - /* - * Variable: aanFeatures - * Purpose: Array referencing the nodes which are used for the features - * Scope: jQuery.dataTable.classSettings - * Notes: The parameters of this object match what is allowed by sDom - i.e. - * 'l' - Length changing - * 'f' - Filtering input - * 't' - The table! - * 'i' - Information - * 'p' - Pagination - * 'r' - pRocessing - */ - this.aanFeatures = []; - - /* - * Variable: oLanguage - * Purpose: Store the language strings used by dataTables - * Scope: jQuery.dataTable.classSettings - * Notes: The words in the format _VAR_ are variables which are dynamically replaced - * by javascript - */ - this.oLanguage = { - "sProcessing": "Processing...", - "sLengthMenu": "Show _MENU_ entries", - "sZeroRecords": "No matching records found", - "sEmptyTable": "No data available in table", - "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries", - "sInfoEmpty": "Showing 0 to 0 of 0 entries", - "sInfoFiltered": "(filtered from _MAX_ total entries)", - "sInfoPostFix": "", - "sSearch": "Search:", - "sUrl": "", - "oPaginate": { - "sFirst": "First", - "sPrevious": "Previous", - "sNext": "Next", - "sLast": "Last" - }, - "fnInfoCallback": null - }; - - /* - * Variable: aoData - * Purpose: Store data information - * Scope: jQuery.dataTable.classSettings - * Notes: This is an array of objects with the following parameters: - * int: _iId - internal id for tracking - * array: _aData - internal data - used for sorting / filtering etc - * node: nTr - display node - * array node: _anHidden - hidden TD nodes - * string: _sRowStripe - */ - this.aoData = []; - - /* - * Variable: aiDisplay - * Purpose: Array of indexes which are in the current display (after filtering etc) - * Scope: jQuery.dataTable.classSettings - */ - this.aiDisplay = []; - - /* - * Variable: aiDisplayMaster - * Purpose: Array of indexes for display - no filtering - * Scope: jQuery.dataTable.classSettings - */ - this.aiDisplayMaster = []; - - /* - * Variable: aoColumns - * Purpose: Store information about each column that is in use - * Scope: jQuery.dataTable.classSettings - */ - this.aoColumns = []; - - /* - * Variable: iNextId - * Purpose: Store the next unique id to be used for a new row - * Scope: jQuery.dataTable.classSettings - */ - this.iNextId = 0; - - /* - * Variable: asDataSearch - * Purpose: Search data array for regular expression searching - * Scope: jQuery.dataTable.classSettings - */ - this.asDataSearch = []; - - /* - * Variable: oPreviousSearch - * Purpose: Store the previous search incase we want to force a re-search - * or compare the old search to a new one - * Scope: jQuery.dataTable.classSettings - */ - this.oPreviousSearch = { - "sSearch": "", - "bRegex": false, - "bSmart": true - }; - - /* - * Variable: aoPreSearchCols - * Purpose: Store the previous search for each column - * Scope: jQuery.dataTable.classSettings - */ - this.aoPreSearchCols = []; - - /* - * Variable: aaSorting - * Purpose: Sorting information - * Scope: jQuery.dataTable.classSettings - * Notes: Index 0 - column number - * Index 1 - current sorting direction - * Index 2 - index of asSorting for this column - */ - this.aaSorting = [ [0, 'asc', 0] ]; - - /* - * Variable: aaSortingFixed - * Purpose: Sorting information that is always applied - * Scope: jQuery.dataTable.classSettings - */ - this.aaSortingFixed = null; - - /* - * Variable: asStripClasses - * Purpose: Classes to use for the striping of a table - * Scope: jQuery.dataTable.classSettings - */ - this.asStripClasses = []; - - /* - * Variable: asDestoryStrips - * Purpose: If restoring a table - we should restore it's striping classes as well - * Scope: jQuery.dataTable.classSettings - */ - this.asDestoryStrips = []; - - /* - * Variable: sDestroyWidth - * Purpose: If restoring a table - we should restore it's width - * Scope: jQuery.dataTable.classSettings - */ - this.sDestroyWidth = 0; - - /* - * Variable: fnRowCallback - * Purpose: Call this function every time a row is inserted (draw) - * Scope: jQuery.dataTable.classSettings - */ - this.fnRowCallback = null; - - /* - * Variable: fnHeaderCallback - * Purpose: Callback function for the header on each draw - * Scope: jQuery.dataTable.classSettings - */ - this.fnHeaderCallback = null; - - /* - * Variable: fnFooterCallback - * Purpose: Callback function for the footer on each draw - * Scope: jQuery.dataTable.classSettings - */ - this.fnFooterCallback = null; - - /* - * Variable: aoDrawCallback - * Purpose: Array of callback functions for draw callback functions - * Scope: jQuery.dataTable.classSettings - * Notes: Each array element is an object with the following parameters: - * function:fn - function to call - * string:sName - name callback (feature). useful for arranging array - */ - this.aoDrawCallback = []; - - /* - * Variable: fnInitComplete - * Purpose: Callback function for when the table has been initalised - * Scope: jQuery.dataTable.classSettings - */ - this.fnInitComplete = null; - - /* - * Variable: sTableId - * Purpose: Cache the table ID for quick access - * Scope: jQuery.dataTable.classSettings - */ - this.sTableId = ""; - - /* - * Variable: nTable - * Purpose: Cache the table node for quick access - * Scope: jQuery.dataTable.classSettings - */ - this.nTable = null; - - /* - * Variable: nTHead - * Purpose: Permanent ref to the thead element - * Scope: jQuery.dataTable.classSettings - */ - this.nTHead = null; - - /* - * Variable: nTFoot - * Purpose: Permanent ref to the tfoot element - if it exists - * Scope: jQuery.dataTable.classSettings - */ - this.nTFoot = null; - - /* - * Variable: nTBody - * Purpose: Permanent ref to the tbody element - * Scope: jQuery.dataTable.classSettings - */ - this.nTBody = null; - - /* - * Variable: nTableWrapper - * Purpose: Cache the wrapper node (contains all DataTables controlled elements) - * Scope: jQuery.dataTable.classSettings - */ - this.nTableWrapper = null; - - /* - * Variable: bInitialised - * Purpose: Indicate if all required information has been read in - * Scope: jQuery.dataTable.classSettings - */ - this.bInitialised = false; - - /* - * Variable: aoOpenRows - * Purpose: Information about open rows - * Scope: jQuery.dataTable.classSettings - * Notes: Has the parameters 'nTr' and 'nParent' - */ - this.aoOpenRows = []; - - /* - * Variable: sDom - * Purpose: Dictate the positioning that the created elements will take - * Scope: jQuery.dataTable.classSettings - * Notes: - * The following options are allowed: - * 'l' - Length changing - * 'f' - Filtering input - * 't' - The table! - * 'i' - Information - * 'p' - Pagination - * 'r' - pRocessing - * The following constants are allowed: - * 'H' - jQueryUI theme "header" classes - * 'F' - jQueryUI theme "footer" classes - * The following syntax is expected: - * '<' and '>' - div elements - * '<"class" and '>' - div with a class - * Examples: - * '<"wrapper"flipt>', 'ip>' - */ - this.sDom = 'lfrtip'; - - /* - * Variable: sPaginationType - * Purpose: Note which type of sorting should be used - * Scope: jQuery.dataTable.classSettings - */ - this.sPaginationType = "two_button"; - - /* - * Variable: iCookieDuration - * Purpose: The cookie duration (for bStateSave) in seconds - default 2 hours - * Scope: jQuery.dataTable.classSettings - */ - this.iCookieDuration = 60 * 60 * 2; - - /* - * Variable: sCookiePrefix - * Purpose: The cookie name prefix - * Scope: jQuery.dataTable.classSettings - */ - this.sCookiePrefix = "SpryMedia_DataTables_"; - - /* - * Variable: fnCookieCallback - * Purpose: Callback function for cookie creation - * Scope: jQuery.dataTable.classSettings - */ - this.fnCookieCallback = null; - - /* - * Variable: aoStateSave - * Purpose: Array of callback functions for state saving - * Scope: jQuery.dataTable.classSettings - * Notes: Each array element is an object with the following parameters: - * function:fn - function to call. Takes two parameters, oSettings and the JSON string to - * save that has been thus far created. Returns a JSON string to be inserted into a - * json object (i.e. '"param": [ 0, 1, 2]') - * string:sName - name of callback - */ - this.aoStateSave = []; - - /* - * Variable: aoStateLoad - * Purpose: Array of callback functions for state loading - * Scope: jQuery.dataTable.classSettings - * Notes: Each array element is an object with the following parameters: - * function:fn - function to call. Takes two parameters, oSettings and the object stored. - * May return false to cancel state loading. - * string:sName - name of callback - */ - this.aoStateLoad = []; - - /* - * Variable: oLoadedState - * Purpose: State that was loaded from the cookie. Useful for back reference - * Scope: jQuery.dataTable.classSettings - */ - this.oLoadedState = null; - - /* - * Variable: sAjaxSource - * Purpose: Source url for AJAX data for the table - * Scope: jQuery.dataTable.classSettings - */ - this.sAjaxSource = null; - - /* - * Variable: bAjaxDataGet - * Purpose: Note if draw should be blocked while getting data - * Scope: jQuery.dataTable.classSettings - */ - this.bAjaxDataGet = true; - - /* - * Variable: fnServerData - * Purpose: Function to get the server-side data - can be overruled by the developer - * Scope: jQuery.dataTable.classSettings - */ - this.fnServerData = function ( url, data, callback ) { - $.ajax( { - "url": url, - "data": data, - "success": callback, - "dataType": "json", - "cache": false, - "error": function (xhr, error, thrown) { - if ( error == "parsererror" ) { - alert( "DataTables warning: JSON data from server could not be parsed. "+ - "This is caused by a JSON formatting error." ); - } - } - } ); - }; - - /* - * Variable: fnFormatNumber - * Purpose: Format numbers for display - * Scope: jQuery.dataTable.classSettings - */ - this.fnFormatNumber = function ( iIn ) - { - if ( iIn < 1000 ) - { - /* A small optimisation for what is likely to be the vast majority of use cases */ - return iIn; - } - else - { - var s=(iIn+""), a=s.split(""), out="", iLen=s.length; - - for ( var i=0 ; i