Skip to content

Commit

Permalink
Full Bootstrap support, added Default Branch
Browse files Browse the repository at this point in the history
  • Loading branch information
Mohamed ElKalioby committed Nov 23, 2017
1 parent 490b3e7 commit f8a2c99
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 9 deletions.
14 changes: 9 additions & 5 deletions webapp/autoDeploy/autodeploy/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,17 @@ def saveFile(file,project_name):

class ProjectsForm(forms.ModelForm):
working_dir=forms.CharField(label="Working Directory",widget=forms.TextInput(attrs={'class':'form-control','size':30}))
repo_type=forms.ChoiceField(choices=repo_type,label="Repo Type")
update_style=forms.ChoiceField(choices=update_style,label="Update Style")
repo_type=forms.ChoiceField(choices=repo_type,label="Repo Type",widget=forms.Select(attrs={"class":"form-control"}))
update_style=forms.ChoiceField(choices=update_style,label="Update Style",widget=forms.Select(attrs={"class":"form-control"}))
cfile=forms.FileField(label="Config File")
name = forms.CharField(label='Project Name',widget=forms.TextInput(attrs={'class':'form-control','size':30}))
repo_link= forms.CharField(label='Repo Link',widget=forms.TextInput(attrs={'class':'form-control','size':30}))
repo= forms.CharField(label='Repo',widget=forms.TextInput(attrs={'class':'form-control','size':30}))
deployment_link= forms.CharField(label='Deployment Link',widget=forms.TextInput(attrs={'class':'form-control','size':30}))
emailUsers=forms.CharField(label='Users emails',help_text="comma seprated list of emails of users to notify when new version deployed",widget=forms.TextInput(attrs={'class':'form-control','size':30}))
emailUsers=forms.CharField(required=False,label='Users emails',help_text="comma seprated list of emails of users to notify when new version deployed",widget=forms.TextInput(attrs={'class':'form-control','size':30}))
default_server=forms.ModelChoiceField(queryset=models.Server.objects.all(),empty_label="Select",widget=forms.Select(attrs={"class":"form-control"}),label="Default Server")
sshKey = forms.ModelChoiceField(queryset=models.SSHKey.objects.all(), empty_label="Select",label="SSH Key",widget=forms.Select(attrs={"class": "form-control"}))
default_branch = forms.CharField(label='Default Branch', widget=forms.TextInput(attrs={'class': 'form-control', 'size': 30}))

def __init__(self, *args, **kwargs):
super(ProjectsForm, self).__init__(*args, **kwargs)
Expand All @@ -45,6 +48,7 @@ def save(self,files,name):
P.default_server=self.cleaned_data["default_server"]
P.update_style=self.cleaned_data["update_style"]
P.emailUsers=self.cleaned_data["emailUsers"]
P.default_branch=self.cleaned_data["default_branch"]

print "Files is ",files
f=files.get('cfile','')
Expand All @@ -53,7 +57,7 @@ def save(self,files,name):
P.save()
class Meta:
model= models.Project
fields=("name","repo","repo_link","working_dir","update_style","default_server","repo_type","sshKey","deployment_link","cfile","emailUsers")
fields=("name","repo","repo_link","working_dir","update_style","default_branch","default_server","repo_type","sshKey","deployment_link","cfile","emailUsers")

class ServerForm(forms.ModelForm):
ip=forms.CharField(widget=forms.TextInput(attrs={'class':'form-control','size':30}),label="Hostname/IP")
Expand Down Expand Up @@ -81,6 +85,6 @@ class Meta:
fields=('name','key')

class CloneForm(forms.Form):
server=forms.ModelChoiceField(queryset=models.Server.objects.all(),label="Server",required=True)
server=forms.ModelChoiceField(queryset=models.Server.objects.all(),label="Server",required=True,widget=forms.Select(attrs={"class":"form-control"}))


39 changes: 39 additions & 0 deletions webapp/autoDeploy/autodeploy/migrations/0015_auto_20171123_0937.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations
import datetime


class Migration(migrations.Migration):

dependencies = [
('autodeploy', '0014_auto_20160514_1317'),
]

operations = [
migrations.AlterModelOptions(
name='deployment_server',
options={'get_latest_by': 'id'},
),
# migrations.AddField(
# model_name='deployment_server',
# name='deployed',
# field=models.BooleanField(default=True),
# ),
# # migrations.AddField(
# model_name='project',
# name='autoDeploy',
# field=models.BooleanField(default=False),
# ),
migrations.AddField(
model_name='project',
name='default_branch',
field=models.CharField(max_length=255, null=True),
),
migrations.AlterField(
model_name='project',
name='lastUpdate',
field=models.DateTimeField(default=datetime.datetime(2017, 11, 23, 9, 37, 18, 29660), blank=True),
),
]
3 changes: 2 additions & 1 deletion webapp/autoDeploy/autodeploy/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ class Project(models.Model):
deployment_link=models.CharField(max_length=200,blank=True)
newVersion=models.BooleanField(default=False)
emailUsers=models.TextField(default="",blank=True)

autoDeploy = models.BooleanField(default=False)
default_branch=models.CharField(max_length=255,null=True)
def __unicode__(self):
return self.name

Expand Down
5 changes: 4 additions & 1 deletion webapp/autoDeploy/autodeploy/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ def add_project(request):
project.default_server=Server.objects.get(name=request.POST["default_server"])
project.update_style=request.POST["update_style"]
project.emailUsers=request.POST["emailUsers"]
project.default_branch=request.POST["default_branch"]
if request.FILES.get("cfile","")!="":
project.configFile=saveFile(request.FILES["cfile"],project.name)
project.save()
Expand Down Expand Up @@ -281,6 +282,8 @@ def listCommits(request,filter=None):
c=None
server=None
project=None
project = Project.objects.get(name=request.session["deploy_project"])
if filter==None: filter=project.default_branch if project.default_branch not in ("",None) else None
print request.GET.get("refresh","False")
if request.GET.get("refresh","False")=="True":
if "commits" in request.session:
Expand All @@ -289,7 +292,7 @@ def listCommits(request,filter=None):
return redirect("./listCommits")
if filter or not "commits" in request.session:
server = Server.objects.get(name=request.session["deploy_server"])
project = Project.objects.get(name=request.session["deploy_project"])

c = Client("git", server.ip, server.port,key=project.sshKey.key)
c.Pull(project.repo,project.working_dir,project.sshKey.key)
res = c.ListCommits(project.working_dir,options={"branch":filter})
Expand Down
14 changes: 12 additions & 2 deletions webapp/autoDeploy/templates/deploy2.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,23 @@ <h4>List of Tags <a href="{{ BASE_URL }}listCommits">Show Commits</a>&nbsp;<a hr
{% elif mode == "commits" %}
<h4>List of Commits <a href={{ BASE_URL }}"deploy2?server={{ server }}">Show Tags</a> <a href="?refresh=True"><span class="fa fa-refresh" title="Refresh"></span> </a></h4>
{% if branchs|length > 1 %}
Filter By Branch: <select name="branch" id="branchs">
<div class="row">
<div class="col-md-2" style="position: relative; top:10px;">
<label>Filter By Branch:</label>
</div>
<div class="col-md-4">
<select name="branch" id="branchs" class="form-control">
{% for branch in branchs %}
<option value="{{ branch }}"
{% if current_branch == branch %} selected {% endif %}
>{{ branch }}</option>
{% endfor %}
</select><a href="javascript:void(0);" onclick="filter_branch()"><span class="glyphicon glyphicon-filter"></span> </a>
</select>
</div>
<div class="col-md-1" style="position: relative; top:10px;">
<a href="javascript:void(0);" onclick="filter_branch()"><span class="glyphicon glyphicon-filter"></span> </a>
</div>
</div>
{% endif %}
<div align="center">
{% render_table commits %}
Expand Down

0 comments on commit f8a2c99

Please sign in to comment.