]> git.parisson.com Git - mezzo.git/commitdiff
Add Demo URL, fix person list placeholder
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Mon, 7 Nov 2016 17:49:53 +0000 (18:49 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Mon, 7 Nov 2016 17:49:53 +0000 (18:49 +0100)
app/organization/projects/migrations/0029_auto_20161107_1742.py [new file with mode: 0644]
app/organization/projects/migrations/0030_auto_20161107_1828.py [new file with mode: 0644]
app/organization/projects/models.py
app/templates/pages/page.html
app/templates/pages/teampage.html
app/templates/projects/project_demo_detail.html

diff --git a/app/organization/projects/migrations/0029_auto_20161107_1742.py b/app/organization/projects/migrations/0029_auto_20161107_1742.py
new file mode 100644 (file)
index 0000000..573de71
--- /dev/null
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-11-07 16:42
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-projects', '0028_auto_20161104_1855'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='projectdemo',
+            name='directory',
+            field=models.CharField(blank=True, help_text='Relative directory in repository', max_length=256, null=True, verbose_name='directory'),
+        ),
+        migrations.AlterField(
+            model_name='repository',
+            name='url',
+            field=models.CharField(help_text='(HTTP(S) or SSH)', max_length=256, verbose_name='URL'),
+        ),
+    ]
diff --git a/app/organization/projects/migrations/0030_auto_20161107_1828.py b/app/organization/projects/migrations/0030_auto_20161107_1828.py
new file mode 100644 (file)
index 0000000..168fe55
--- /dev/null
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-11-07 17:28
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-projects', '0029_auto_20161107_1742'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='projectdemo',
+            name='url',
+            field=models.URLField(blank=True, max_length=512, verbose_name='URL'),
+        ),
+        migrations.AlterField(
+            model_name='repository',
+            name='url',
+            field=models.CharField(help_text='http(s) or ssh', max_length=256, verbose_name='URL'),
+        ),
+    ]
index 9a4aa2398c18b2d68036753d98404dbee276c87c..493565f4488529f6102c6358a681746f0bdb649e 100644 (file)
@@ -128,12 +128,13 @@ class ProjectTopicPage(Page, SubTitled):
         verbose_name_plural = _("project topic pages")
 
 
-class ProjectDemo(Displayable, RichText):
+class ProjectDemo(Displayable, RichText, URL):
 
     project = models.ForeignKey('Project', verbose_name=_('project'), related_name='demos', blank=True, null=True, on_delete=models.SET_NULL)
     authors = models.ManyToManyField(Person, verbose_name=_('authors'), related_name='demos', blank=True)
     repository = models.ForeignKey('Repository', verbose_name=_('repository'), related_name='demos', blank=True, null=True, on_delete=models.SET_NULL)
     build_commands = models.TextField(_('build commands'), blank=True)
+    directory = models.CharField(_('directory'), max_length=256, blank=True, null=True, help_text='Relative directory in repository')
 
     class Meta:
         verbose_name = _('project demo')
@@ -142,6 +143,11 @@ class ProjectDemo(Displayable, RichText):
     def get_absolute_url(self):
         return reverse("organization-project-demo-detail", kwargs={"slug": self.slug})
 
+    @property
+    def relative_url(self):
+        path = self.repository.directory.replace(settings.MEDIA_ROOT, '')
+        return settings.MEDIA_URL + path + os.sep + self.directory + '/index.html'
+
     def build(self):
         os.chdir(self.repository.directory)
         for command in self.build_commands.split('\n'):
@@ -149,14 +155,16 @@ class ProjectDemo(Displayable, RichText):
 
     def save(self, *args, **kwargs):
         super(ProjectDemo, self).save(args, kwargs)
-        self.build()
+        if self.repository:
+            self.build()
 
 
-class Repository(Named, URL):
+class Repository(Named):
 
     system = models.ForeignKey('RepositorySystem', verbose_name=_('system'), related_name='repositories')
     access = models.CharField(_('access'), max_length=64, choices=ACCESS_CHOICES, default='private')
     branch = models.CharField(_('branch'), max_length=32, default='master')
+    url = models.CharField(_('URL'), max_length=256, help_text='http(s) or ssh')
 
     class Meta:
         verbose_name = _('repository')
@@ -164,6 +172,7 @@ class Repository(Named, URL):
 
     def save(self, *args, **kwargs):
         super(Repository, self).save(args, kwargs)
+        os.path.exists(self.directory)
         if not os.path.exists(self.directory):
             self.clone()
         self.checkout()
@@ -171,12 +180,7 @@ class Repository(Named, URL):
     @property
     def directory(self):
         dir_name = self.url.split('/')[-1].split('.')[0]
-        return settings.PROJECT_DEMOS_DIR + os.sep + dir_name
-
-    @property
-    def relative_url(self):
-        path = self.directory.replace(settings.MEDIA_ROOT, '')
-        return settings.MEDIA_URL + path + '/index.html'
+        return settings.PROJECT_DEMOS_DIR + dir_name
 
     def clone(self):
         os.chdir(settings.PROJECT_DEMOS_DIR)
index 158c61014aa26f297ec5447be402b0bd144c7e5c..d364e256223a5168b12c01fb537551640bb46158 100644 (file)
 
         <div class="white-bg">
 
+            {% block page_person_list %}
+            {% endblock %}
+
             {% block page_sub_content %}
                 {% with object.blocks.all as blocks %}
                     {% include "core/inc/block.html" %}
             {% block page_sub_content_2 %}
             {% endblock %}
 
-            {% block page_person_list %}
+            {% block page_person_list_team %}
             {% endblock %}
 
             {% block logo %}
index 36e65eea01d16bb1a923fb881976e572ef7ade37..ce0894e1aeb3da497df4bf9fdc9d8e3630f641ca 100644 (file)
@@ -74,7 +74,7 @@
     {% endwith %}
 {% endblock %}
 
-{% block page_person_list %}
+{% block page_person_list_team %}
     {% activity_statuses as statuses %}
     {% if statuses|length > 0 %}
         <div class="white-bg">
index 42df2caca717571ea7d439a01394f3ef60c2f6a6..0c366223804973e18c938ba9a8ff912dd404c4d6 100644 (file)
@@ -38,6 +38,7 @@
 
 {% block page_slider %}
 <div style="position: relative;">
-    <iframe width="100%" height="960px" scrolling="auto" src="{{ demo.repository.relative_url }}" frameborder="0" allowfullscreen=""></iframe>
+    <iframe width="100%" height="1080px" scrolling="auto" src="{% if demo.url %}{{ demo.url }}{% else %}{{ demo.relative_url }}{% endif %}" frameborder="0" allowfullscreen=""></iframe>
 </div>
+
 {% endblock %}