Branch: refs/heads/master Author: Enrico Tröger enrico.troeger@uvena.de Committer: Enrico Tröger enrico.troeger@uvena.de Date: Sun, 31 Mar 2019 14:09:21 UTC Commit: a68aac442a4a17ba24adc394577bdcd9097eb012 https://github.com/geany/www.geany.org/commit/a68aac442a4a17ba24adc394577bdc...
Log Message: ----------- Update nightlybuilds app
Modified Paths: -------------- nightlybuilds/database_routers.py nightlybuilds/models.py nightlybuilds/templatetags/nightlybuilds_tags.py nightlybuilds/views.py
Modified: nightlybuilds/database_routers.py 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -48,5 +48,5 @@ def allow_relation(self, obj1, obj2, **hints): return None
#---------------------------------------------------------------------- - def allow_migrate(self, db, model): - return model._meta.app_label != 'nightlybuilds' + def allow_migrate(self, db, app_label, model_name=None, **hints): + return app_label != 'nightlybuilds'
Modified: nightlybuilds/models.py 13 lines changed, 9 insertions(+), 4 deletions(-) =================================================================== @@ -3,12 +3,12 @@ # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. -# +# # This program 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 # GNU Affero General Public License for more details. -# +# # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see http://www.gnu.org/licenses/.
@@ -19,12 +19,17 @@ class NightlyBuildTarget(models.Model):
nightly_build_target_id = models.PositiveIntegerField(primary_key=True) + active = models.BooleanField() project = models.CharField(max_length=50) identifier = models.CharField(max_length=50) name = models.CharField(max_length=50) arch = models.CharField(max_length=50) folder = models.CharField(max_length=50) - last_nightly_build = models.ForeignKey('NightlyBuild', null=True, blank=True) + last_nightly_build = models.ForeignKey( + 'NightlyBuild', + null=True, + blank=True, + on_delete=models.PROTECT)
######################################################################## class Meta: @@ -40,7 +45,7 @@ def __unicode__(self): class NightlyBuild(models.Model):
nightly_build_id = models.PositiveIntegerField(primary_key=True) - nightly_build_target = models.ForeignKey('NightlyBuildTarget') + nightly_build_target = models.ForeignKey('NightlyBuildTarget', on_delete=models.PROTECT) status = models.BooleanField() revision = models.CharField(max_length=255) compiler_version = models.CharField(max_length=50)
Modified: nightlybuilds/templatetags/nightlybuilds_tags.py 16 lines changed, 11 insertions(+), 5 deletions(-) =================================================================== @@ -3,17 +3,18 @@ # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. -# +# # This program 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 # GNU Affero General Public License for more details. -# +# # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see http://www.gnu.org/licenses/.
from django import template from django.conf import settings +from django.utils.html import format_html import os
@@ -37,8 +38,11 @@ def get_build_log(nightly_build, log_type): pass else: if size > 0: - path = u'%s/%s' % (nightly_build.nightly_build_target.folder, log) - return u'<a href="%s">%s</stdout>' % (path, log_type) + return format_html( + u'<a href="/{}/{}">{}</stdout>', + nightly_build.nightly_build_target.folder, + log, + log_type) return u''
@@ -47,6 +51,8 @@ def get_build_log(nightly_build, log_type): def get_details(nightly_build): header_txt = os.path.join(base_dir, nightly_build.nightly_build_target.folder, 'HEADER.txt') if os.path.exists(header_txt): - return u'<a href="/%s/">Details</a>' % (nightly_build.nightly_build_target.folder) + return format_html( + u'<a href="/{}/">Details</a>', + nightly_build.nightly_build_target.folder) else: return u''
Modified: nightlybuilds/views.py 5 lines changed, 3 insertions(+), 2 deletions(-) =================================================================== @@ -3,12 +3,12 @@ # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. -# +# # This program 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 # GNU Affero General Public License for more details. -# +# # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see http://www.gnu.org/licenses/.
@@ -25,5 +25,6 @@ class NightlyBuildsView(ListView):
queryset = NightlyBuild.objects.\ prefetch_related('nightly_build_target').\ + filter(nightly_build_target__active=1).\ filter(nightly_build_target__last_nightly_build_id=F('nightly_build_id')).\ order_by('nightly_build_target__project', 'nightly_build_target__identifier')
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).