Update project symlinks on save.
parent
d644591507
commit
a1b3d35e9d
|
@ -3,21 +3,13 @@ import logging
|
|||
from django.core.management.base import BaseCommand
|
||||
from django.conf import settings
|
||||
|
||||
from projects import tasks
|
||||
from projects import tasks, utils
|
||||
from tastyapi import apiv2 as api
|
||||
|
||||
import redis
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
def symlink(slug):
|
||||
version_data = api.version().get(project=slug, slug='latest')['results'][0]
|
||||
v = tasks.make_api_version(version_data)
|
||||
log.info("Symlinking %s" % v)
|
||||
tasks.symlink_subprojects(v)
|
||||
tasks.symlink_cnames(v)
|
||||
tasks.symlink_translations(v)
|
||||
|
||||
class Command(BaseCommand):
|
||||
def handle(self, *args, **options):
|
||||
if len(args):
|
||||
|
@ -29,9 +21,9 @@ class Command(BaseCommand):
|
|||
for slug in slugs:
|
||||
try:
|
||||
log.info("Got slug from redis: %s" % slug)
|
||||
symlink(slug)
|
||||
utils.symlink(project=slug)
|
||||
except Exception, e:
|
||||
print e
|
||||
else:
|
||||
for slug in args:
|
||||
symlink(slug)
|
||||
utils.symlink(project=slug)
|
||||
|
|
|
@ -17,7 +17,7 @@ from betterversion.better import version_windows, BetterVersion
|
|||
from projects import constants
|
||||
from projects.exceptions import ProjectImportError
|
||||
from projects.templatetags.projects_tags import sort_version_aware
|
||||
from projects.utils import highest_version as _highest, make_api_version
|
||||
from projects.utils import highest_version as _highest, make_api_version, symlink
|
||||
from taggit.managers import TaggableManager
|
||||
from tastyapi.slum import api
|
||||
|
||||
|
@ -290,6 +290,7 @@ class Project(models.Model):
|
|||
for owner in self.users.all():
|
||||
assign('view_project', owner, self)
|
||||
self.sync_supported_versions()
|
||||
symlink(project=self.slug)
|
||||
return obj
|
||||
|
||||
def get_absolute_url(self):
|
||||
|
|
|
@ -653,15 +653,18 @@ def update_intersphinx(version_pk, api=None):
|
|||
|
||||
|
||||
def save_term(version, term, url):
|
||||
redis_obj = redis.Redis(**settings.REDIS)
|
||||
lang = "en"
|
||||
project_slug = version.project.slug
|
||||
version_slug = version.slug
|
||||
redis_obj.sadd('redirects:v4:%s:%s:%s:%s' % (lang, version_slug,
|
||||
project_slug, term), url)
|
||||
redis_obj.setnx('redirects:v4:%s:%s:%s:%s:%s' % (lang, version_slug,
|
||||
project_slug, term, url),
|
||||
1)
|
||||
try:
|
||||
redis_obj = redis.Redis(**settings.REDIS)
|
||||
lang = "en"
|
||||
project_slug = version.project.slug
|
||||
version_slug = version.slug
|
||||
redis_obj.sadd('redirects:v4:%s:%s:%s:%s' % (lang, version_slug,
|
||||
project_slug, term), url)
|
||||
redis_obj.setnx('redirects:v4:%s:%s:%s:%s:%s' % (lang, version_slug,
|
||||
project_slug, term, url),
|
||||
1)
|
||||
except:
|
||||
pass
|
||||
|
||||
def symlink_cnames(version):
|
||||
"""
|
||||
|
|
|
@ -9,13 +9,25 @@ import logging
|
|||
from httplib2 import Http
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from distutils2.version import NormalizedVersion, suggest_normalized_version
|
||||
import redis
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
def symlink(project, version='latest'):
|
||||
from projects import tasks
|
||||
from builds.models import Version
|
||||
from tastyapi import api
|
||||
if getattr(settings, 'DONT_HIT_DB', True):
|
||||
version_data = api.version().get(project=project, slug=version)['results'][0]
|
||||
v = tasks.make_api_version(version_data)
|
||||
else:
|
||||
v = Version.objects.get(project__slug=project, slug=version)
|
||||
log.info("Symlinking %s" % v)
|
||||
tasks.symlink_subprojects(v)
|
||||
tasks.symlink_cnames(v)
|
||||
tasks.symlink_translations(v)
|
||||
|
||||
def find_file(file):
|
||||
"""Find matching filenames in the current directory and its subdirectories,
|
||||
|
|
Loading…
Reference in New Issue