Added saas icons

This commit is contained in:
Marc 2014-10-10 17:17:20 +00:00
parent ed088d5539
commit 29c233a44a
16 changed files with 966 additions and 28 deletions

View File

@ -138,3 +138,5 @@ Remember that, as always with QuerySets, any subsequent chained methods which im
* Move MU webapps to SaaS? * Move MU webapps to SaaS?
* DN: Transaction atomicity and backend failure * DN: Transaction atomicity and backend failure
* SaaS Icons

View File

@ -46,8 +46,8 @@ class RouteAdmin(admin.ModelAdmin):
class BackendOperationInline(admin.TabularInline): class BackendOperationInline(admin.TabularInline):
model = BackendOperation model = BackendOperation
fields = ('action', 'content_object_link') fields = ('action', 'instance_link')
readonly_fields = ('action', 'content_object_link') readonly_fields = ('action', 'instance_link')
extra = 0 extra = 0
can_delete = False can_delete = False
@ -56,22 +56,22 @@ class BackendOperationInline(admin.TabularInline):
'all': ('orchestra/css/hide-inline-id.css',) 'all': ('orchestra/css/hide-inline-id.css',)
} }
def content_object_link(self, operation): def instance_link(self, operation):
try: try:
return admin_link('content_object')(self, operation) return admin_link('instance')(self, operation)
except: except:
return _("deleted {0} {1}").format( return _("deleted {0} {1}").format(
escape(operation.content_type), escape(operation.object_id) escape(operation.content_type), escape(operation.object_id)
) )
content_object_link.allow_tags = True instance_link.allow_tags = True
content_object_link.short_description = _("Content_object") instance_link.short_description = _("Instance")
def has_add_permission(self, *args, **kwargs): def has_add_permission(self, *args, **kwargs):
return False return False
def get_queryset(self, request): def get_queryset(self, request):
queryset = super(BackendOperationInline, self).get_queryset(request) queryset = super(BackendOperationInline, self).get_queryset(request)
return queryset.prefetch_related('content_object') return queryset.prefetch_related('instance')
def display_mono(field): def display_mono(field):

View File

@ -102,23 +102,19 @@ class BackendOperation(models.Model):
content_type = models.ForeignKey(ContentType) content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField() object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id') instance = generic.GenericForeignKey('content_type', 'object_id')
class Meta: class Meta:
verbose_name = _("Operation") verbose_name = _("Operation")
verbose_name_plural = _("Operations") verbose_name_plural = _("Operations")
def __init__(self, *args, **kwargs):
self.instance = kwargs.pop('instance', None)
super(BackendOperation, self).__init__(*args, **kwargs)
def __unicode__(self): def __unicode__(self):
return '%s.%s(%s)' % (self.backend, self.action, self.instance or self.content_object) return '%s.%s(%s)' % (self.backend, self.action, self.instance)
def __hash__(self): def __hash__(self):
""" set() """ """ set() """
backend = getattr(self, 'backend', self.backend) backend = getattr(self, 'backend', self.backend)
return hash(backend) + hash(self.instance or self.content_object) + hash(self.action) return hash(backend) + hash(self.instance) + hash(self.action)
def __eq__(self, operation): def __eq__(self, operation):
""" set() """ """ set() """
@ -126,7 +122,7 @@ class BackendOperation(models.Model):
@classmethod @classmethod
def create(cls, backend, instance, action): def create(cls, backend, instance, action):
op = cls(backend=backend.get_name(), instance=instance, content_object=instance, action=action) op = cls(backend=backend.get_name(), instance=instance, action=action)
op.backend = backend op.backend = backend
return op return op

View File

@ -7,15 +7,19 @@ ORCHESTRATION_OS_CHOICES = getattr(settings, 'ORCHESTRATION_OS_CHOICES', (
('LINUX', "Linux"), ('LINUX', "Linux"),
)) ))
ORCHESTRATION_DEFAULT_OS = getattr(settings, 'ORCHESTRATION_DEFAULT_OS', 'LINUX') ORCHESTRATION_DEFAULT_OS = getattr(settings, 'ORCHESTRATION_DEFAULT_OS', 'LINUX')
ORCHESTRATION_SSH_KEY_PATH = getattr(settings, 'ORCHESTRATION_SSH_KEY_PATH', ORCHESTRATION_SSH_KEY_PATH = getattr(settings, 'ORCHESTRATION_SSH_KEY_PATH',
path.join(path.expanduser('~'), '.ssh/id_rsa')) path.join(path.expanduser('~'), '.ssh/id_rsa'))
ORCHESTRATION_ROUTER = getattr(settings, 'ORCHESTRATION_ROUTER', ORCHESTRATION_ROUTER = getattr(settings, 'ORCHESTRATION_ROUTER',
'orchestra.apps.orchestration.models.Route' 'orchestra.apps.orchestration.models.Route'
) )
ORCHESTRATION_TEMP_SCRIPT_PATH = getattr(settings, 'ORCHESTRATION_TEMP_SCRIPT_PATH', ORCHESTRATION_TEMP_SCRIPT_PATH = getattr(settings, 'ORCHESTRATION_TEMP_SCRIPT_PATH',
'/dev/shm' '/dev/shm'
) )

View File

@ -0,0 +1,19 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from orchestra.forms import PluginDataForm
from .options import SoftwareService
class DowkuwikiForm(PluginDataForm):
username = forms.CharField(label=_("Username"), max_length=64)
password = forms.CharField(label=_("Password"), max_length=64)
site_name = forms.CharField(label=_("Site name"), max_length=64)
email = forms.EmailField(label=_("Email"))
class DokuwikiService(SoftwareService):
verbose_name = "Dowkuwiki"
form = DowkuwikiForm
description_field = 'site_name'

View File

@ -0,0 +1,19 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from orchestra.forms import PluginDataForm
from .options import SoftwareService
class DrupalForm(PluginDataForm):
username = forms.CharField(label=_("Username"), max_length=64)
password = forms.CharField(label=_("Password"), max_length=64)
site_name = forms.CharField(label=_("Site name"), max_length=64)
email = forms.EmailField(label=_("Email"))
class DrupalService(SoftwareService):
verbose_name = "Drupal"
form = DrupalForm
description_field = 'site_name'

View File

@ -0,0 +1,19 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from orchestra.forms import PluginDataForm
from .options import SoftwareService
class MoodleForm(PluginDataForm):
username = forms.CharField(label=_("Username"), max_length=64)
password = forms.CharField(label=_("Password"), max_length=64)
site_name = forms.CharField(label=_("Site name"), max_length=64)
email = forms.EmailField(label=_("Email"))
class MoodleService(SoftwareService):
verbose_name = "Moodle"
form = MoodleForm
description_field = 'site_name'

View File

@ -0,0 +1,20 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from orchestra.forms import PluginDataForm
from .options import SoftwareService
class WordpressForm(PluginDataForm):
username = forms.CharField(label=_("Username"), max_length=64)
password = forms.CharField(label=_("Password"), max_length=64)
site_name = forms.CharField(label=_("Site name"), max_length=64,
help_text=_("URL will be <site_name>.blogs.orchestra.lan"))
email = forms.EmailField(label=_("Email"))
class WordpressService(SoftwareService):
verbose_name = "Wordpress"
form = WordpressForm
description_field = 'site_name'

View File

@ -2,6 +2,10 @@ from django.conf import settings
SAAS_ENABLED_SERVICES = getattr(settings, 'SAAS_ENABLED_SERVICES', ( SAAS_ENABLED_SERVICES = getattr(settings, 'SAAS_ENABLED_SERVICES', (
'orchestra.apps.saas.services.wordpress.WordpressService',
'orchestra.apps.saas.services.drupal.DrupalService',
'orchestra.apps.saas.services.dokuwiki.DokuwikiService',
'orchestra.apps.saas.services.moodle.MoodleService',
'orchestra.apps.saas.services.bscw.BSCWService', 'orchestra.apps.saas.services.bscw.BSCWService',
'orchestra.apps.saas.services.gitlab.GitLabService', 'orchestra.apps.saas.services.gitlab.GitLabService',
'orchestra.apps.saas.services.phplist.PHPListService', 'orchestra.apps.saas.services.phplist.PHPListService',

View File

@ -0,0 +1,553 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="128.00854"
height="128.51692"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46+devel r21627"
sodipodi:docname="dokuwiki.svg"
version="1.1"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective100" />
<linearGradient
id="linearGradient2624">
<stop
style="stop-color:#3a9030;stop-opacity:0.83673471;"
offset="0"
id="stop2626" />
<stop
style="stop-color:#3d9c32;stop-opacity:0.79591835;"
offset="1"
id="stop2628" />
</linearGradient>
<linearGradient
id="linearGradient2612">
<stop
style="stop-color:#25901b;stop-opacity:0.83673471;"
offset="0"
id="stop2614" />
<stop
style="stop-color:#25901b;stop-opacity:0.37755102;"
offset="1"
id="stop2616" />
</linearGradient>
<linearGradient
id="linearGradient2600">
<stop
style="stop-color:#e32525;stop-opacity:0.81632656;"
offset="0"
id="stop2602" />
<stop
style="stop-color:#e32525;stop-opacity:0.5714286;"
offset="1"
id="stop2604" />
</linearGradient>
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0"
refX="0"
id="TriangleOutL"
style="overflow:visible">
<path
id="path2488"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.8,0.8)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path2571"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,-5.5,0)" />
</marker>
<linearGradient
id="linearGradient2408">
<stop
id="stop2410"
offset="0"
style="stop-color:#000000;stop-opacity:0.17346939;" />
<stop
id="stop2412"
offset="1"
style="stop-color:#c7cec2;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient2389">
<stop
style="stop-color:#000000;stop-opacity:0.17346939;"
offset="0"
id="stop2391" />
<stop
style="stop-color:#c7cec2;stop-opacity:0;"
offset="1"
id="stop2393" />
</linearGradient>
<linearGradient
id="linearGradient2370">
<stop
style="stop-color:#fbfaf9;stop-opacity:1;"
offset="0"
id="stop2372" />
<stop
style="stop-color:#e9dac7;stop-opacity:1;"
offset="1"
id="stop2374" />
</linearGradient>
<linearGradient
id="linearGradient2364">
<stop
id="stop2366"
offset="0"
style="stop-color:#fbf6f0;stop-opacity:1;" />
<stop
id="stop2368"
offset="1"
style="stop-color:#e9dac7;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient2348">
<stop
style="stop-color:#fbf6f0;stop-opacity:1;"
offset="0"
id="stop2350" />
<stop
style="stop-color:#e9dac7;stop-opacity:1;"
offset="1"
id="stop2352" />
</linearGradient>
<linearGradient
id="linearGradient2332">
<stop
style="stop-color:#ede1ae;stop-opacity:1;"
offset="0"
id="stop2334" />
<stop
style="stop-color:#fefdfa;stop-opacity:1;"
offset="1"
id="stop2336" />
</linearGradient>
<linearGradient
id="linearGradient2249">
<stop
style="stop-color:#00a423;stop-opacity:1;"
offset="0"
id="stop2251" />
<stop
style="stop-color:#00b427;stop-opacity:1;"
offset="1"
id="stop2253" />
</linearGradient>
<linearGradient
id="linearGradient2229">
<stop
id="stop2231"
offset="0"
style="stop-color:#00b62b;stop-opacity:1;" />
<stop
id="stop2233"
offset="1"
style="stop-color:#a1d784;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient2213">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop2215" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop2217" />
</linearGradient>
<linearGradient
id="linearGradient2360">
<stop
style="stop-color:#d69c00;stop-opacity:1;"
offset="0"
id="stop2362" />
<stop
style="stop-color:#ffe658;stop-opacity:1;"
offset="1"
id="stop2364" />
</linearGradient>
<linearGradient
id="linearGradient2352">
<stop
id="stop2354"
offset="0"
style="stop-color:#ce411e;stop-opacity:1;" />
<stop
id="stop2356"
offset="1"
style="stop-color:#ecad8d;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient2336">
<stop
style="stop-color:#8f2a15;stop-opacity:1;"
offset="0"
id="stop2338" />
<stop
style="stop-color:#c8381b;stop-opacity:1;"
offset="1"
id="stop2340" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2336"
id="linearGradient2342"
x1="219.21262"
y1="189.01556"
x2="286.22665"
y2="189.01556"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2352"
id="linearGradient2350"
x1="219.66267"
y1="192.73286"
x2="277.8761"
y2="192.73286"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient2360"
id="radialGradient2366"
cx="224.41418"
cy="212.80016"
fx="224.41418"
fy="212.80016"
r="8.6813803"
gradientTransform="matrix(1,0,0,0.984179,0,3.366635)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2249"
id="linearGradient2227"
x1="192.03938"
y1="262.25757"
x2="263.67093"
y2="262.25757"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2229"
id="linearGradient2247"
x1="191.75092"
y1="258.91571"
x2="255.6561"
y2="258.91571"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient2360"
id="radialGradient2317"
cx="257.41144"
cy="274.64203"
fx="257.41144"
fy="274.64203"
r="7.1440549"
gradientTransform="matrix(1,0,0,1.631384,0,-173.4045)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2360"
id="linearGradient2325"
x1="184.07063"
y1="246.35907"
x2="201.40646"
y2="246.35907"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2332"
id="linearGradient2346"
x1="162.76369"
y1="184.99277"
x2="240.84924"
y2="289.50323"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2348"
id="linearGradient2354"
x1="140.15784"
y1="303.78967"
x2="136.14151"
y2="195.87151"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2370"
id="linearGradient2362"
x1="286.15598"
y1="262.28729"
x2="185.81258"
y2="172.32423"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2389"
id="linearGradient2395"
x1="213.96568"
y1="220.07191"
x2="244.79126"
y2="265.40363"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2408"
id="linearGradient2406"
x1="184.30582"
y1="241.52789"
x2="224.67441"
y2="307.52844"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2600"
id="linearGradient2606"
x1="202.41772"
y1="222.05145"
x2="206.06017"
y2="210.3558"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2612"
id="linearGradient2618"
x1="248.62152"
y1="234.52202"
x2="251.64362"
y2="213.12164"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2624"
id="linearGradient2630"
x1="275.71765"
y1="251.56442"
x2="255.68353"
y2="217.94008"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2352"
id="linearGradient2640"
gradientUnits="userSpaceOnUse"
x1="219.66267"
y1="192.73286"
x2="277.8761"
y2="192.73286" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2336"
id="linearGradient2643"
gradientUnits="userSpaceOnUse"
x1="219.21262"
y1="189.01556"
x2="286.22665"
y2="189.01556" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient2360"
id="radialGradient2647"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.984179,0,3.366635)"
cx="224.41418"
cy="212.80016"
fx="224.41418"
fy="212.80016"
r="8.6813803" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.734697"
inkscape:cx="35.103028"
inkscape:cy="81.524672"
inkscape:document-units="px"
inkscape:current-layer="layer3"
inkscape:window-width="1206"
inkscape:window-height="855"
inkscape:window-x="0"
inkscape:window-y="0"
showguides="true"
inkscape:guide-bbox="true"
showgrid="false"
inkscape:window-maximized="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="paper"
style="display:inline"
transform="translate(-158.14742,-158.45341)">
<g
id="g1419">
<g
id="g2376">
<path
transform="matrix(0.989976,-0.141236,0.201069,0.979577,0,0)"
style="fill:url(#linearGradient2354);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7216621px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 120.21543,196.43769 70.90655,-0.79226 -2.40261,109.05308 -71.71761,0.37344 3.21367,-108.63426 z"
id="rect1422"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient2362);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 179.20033,182.08731 79.84173,-19.51687 26.61391,101.72428 -82.50312,21.58684 -23.95252,-103.79425 z"
id="rect1425"
sodipodi:nodetypes="ccccc" />
<path
transform="matrix(0.995676,-0.09289891,0.08102261,0.996712,0,0)"
style="fill:url(#linearGradient2346);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00418305px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 159.01353,181.74387 85.58587,0.53396 0,110.47429 -84.53387,-2.5127 -1.052,-108.49555 z"
id="rect1419"
sodipodi:nodetypes="ccccc" />
</g>
<path
id="text2382"
d="m 167.55116,214.00773 0,-20.1846 5.34962,0 0,2.37403 -2.48145,0 0,15.43654 2.48145,0 0,2.37403 -5.34962,0 m 7.34767,0 0,-20.1846 5.34961,0 0,2.37403 -2.48144,0 0,15.43654 2.48144,0 0,2.37403 -5.34961,0 m 7.36915,-20.1846 5.81153,0 c 1.31054,2e-5 2.30956,0.10028 2.99707,0.30078 0.92382,0.27216 1.71516,0.75555 2.37403,1.4502 0.65884,0.69468 1.16014,1.54689 1.50391,2.55664 0.34373,1.00262 0.51561,2.24155 0.51562,3.71681 -10e-6,1.29623 -0.16115,2.41342 -0.4834,3.35156 -0.39389,1.14584 -0.95607,2.07325 -1.68652,2.78223 -0.55145,0.53711 -1.29624,0.95606 -2.23438,1.25684 -0.70183,0.222 -1.63999,0.33301 -2.81446,0.33301 l -5.9834,0 0,-15.74807 m 3.17969,2.66407 0,10.43067 2.37402,0 c 0.88802,1e-5 1.52897,-0.0501 1.92286,-0.15039 0.51561,-0.1289 0.94172,-0.34732 1.27832,-0.65527 0.34374,-0.30794 0.62304,-0.81282 0.83789,-1.51465 0.21483,-0.70898 0.32226,-1.6722 0.32227,-2.88965 -1e-5,-1.21744 -0.10744,-2.15201 -0.32227,-2.80372 -0.21485,-0.65168 -0.51563,-1.16014 -0.90234,-1.52539 -0.38673,-0.36522 -0.87729,-0.61229 -1.47168,-0.74121 -0.44402,-0.10025 -1.31414,-0.15038 -2.61036,-0.15039 l -1.42871,0 m 14.96388,13.084 -3.75977,-15.74807 3.25489,0 2.37403,10.8174 2.87891,-10.8174 3.78125,0 2.76074,11.00002 2.417,-11.00002 3.20118,0 -3.82423,15.74807 -3.37305,0 -3.13672,-11.77345 -3.12598,11.77345 -3.44825,0 m 22.76272,-15.74807 0,20.1846 -5.34961,0 0,-2.37403 2.48145,0 0,-15.45803 -2.48145,0 0,-2.35254 5.34961,0 m 7.34767,0 0,20.1846 -5.34962,0 0,-2.37403 2.48145,0 0,-15.45803 -2.48145,0 0,-2.35254 5.34962,0"
style="font-size:12.0000124px;font-style:normal;font-weight:normal;line-height:125%;fill:#6184a3;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="matrix(0.995433,-0.09546066,0.09546066,0.995433,0,0)" />
<g
id="g2632"
style="display:inline">
<path
style="fill:url(#linearGradient2606);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker-end:none"
d="m 174.75585,201.60224 c -6.04576,2.46667 -10.16789,4.4194 -12.88454,6.35064 -2.71665,1.93124 -3.19257,4.60007 -3.24631,6.26587 -0.0269,0.8329 0.0809,1.77774 0.63189,2.44014 0.55103,0.6624 1.80769,1.87421 2.75794,2.38558 1.90049,1.02274 7.5417,2.42901 10.51899,3.07308 11.90917,2.57627 26.80568,1.68117 26.80568,1.68117 1.69307,1.2452 2.83283,2.82434 3.269,4.26902 4.5766,-1.88674 11.81084,-6.58439 13.15657,-8.57706 -5.45142,-4.19955 -10.79692,-6.33346 -16.51317,-8.30847 -1.59867,-0.71918 -2.87956,-1.22649 -0.71773,2.55635 0.98506,2.47275 0.85786,5.05143 0.57176,7.41825 0,0 -16.52749,0.40678 -28.23838,-2.1266 -2.92772,-0.63334 -5.46627,-0.95523 -7.21875,-1.89832 -0.87624,-0.47154 -1.48296,-0.8208 -1.91578,-1.3411 -0.43282,-0.5203 -0.2196,-1.29055 -0.20128,-1.85858 0.0366,-1.13607 0.25336,-1.67063 2.86177,-3.52492 2.60841,-1.85429 5.65407,-3.36195 11.65936,-5.81211 -0.0877,-1.29125 -0.29025,-2.5059 -1.29702,-2.99294 z"
id="path2414"
sodipodi:nodetypes="csssssccccccssssscc" />
<path
style="fill:url(#linearGradient2618);fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 269.62539,220.7482 c -1.43576,-0.13963 -2.58044,0.30288 -2.56084,1.50218 0.94391,0.85652 1.34942,2.43518 1.48562,3.14008 0.1362,0.7049 0.0359,1.21914 -0.48562,1.89004 -1.043,1.3418 -3.12498,1.56875 -6.5006,2.72063 -6.75124,2.30377 -16.89306,2.52561 -27.90689,3.84639 -22.02767,2.64157 -39.03164,3.76107 -39.03164,3.76107 1.98346,-4.64758 6.32828,-4.41197 6.34903,-8.20969 0.27376,-0.89755 -3.14597,-1.31638 -5.09943,-0.10731 -4.26694,3.70137 -7.59152,6.75353 -10.69418,10.51311 l 1.88795,3.08438 c 0,0 26.13006,-2.88973 48.19776,-5.5361 11.03385,-1.32318 20.95601,-1.99856 27.80968,-4.33728 3.42683,-1.16936 5.95975,-1.49022 7.6409,-3.51958 0.63172,-0.76256 1.35238,-3.04699 1.06804,-4.73369 -0.21951,-1.30213 -1.14979,-3.09774 -2.15978,-4.01423 z"
id="path2608"
sodipodi:nodetypes="ccsssscccccssssc" />
<path
style="fill:url(#linearGradient2630);fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 254.36185,220.33948 c -6.84997,3.24198 -7.15311,8.60912 -5.95953,12.79884 1.19358,4.18972 5.26293,8.75677 9.32121,12.40608 8.11656,7.29861 12.06046,9.33163 12.06046,9.33163 -3.71515,-0.10342 -7.89887,-1.41174 -8.13315,0.49304 -0.9483,2.97582 11.49137,3.47486 17.43787,2.70205 -1.39456,-7.57836 -3.79323,-13.21546 -7.73151,-14.90312 -1.68464,-0.14804 0.31242,4.72441 0.76985,9.39604 0,0 -3.62454,-1.73122 -11.60519,-8.90762 -3.99032,-3.5882 -7.37386,-7.3421 -8.47319,-11.20099 -1.09933,-3.85889 0.0776,-6.1205 4.95082,-9.53176 0.92816,-0.99528 -1.28985,-2.45913 -2.63764,-2.58419 z"
id="path2620"
sodipodi:nodetypes="csscccccsscc" />
</g>
<path
sodipodi:nodetypes="cccccc"
id="rect2386"
d="m 213.96569,234.57806 2.18756,-14.42897 15.21982,6.08793 21.49387,29.94828 -20.40591,9.21832 -18.49534,-30.82556 z"
style="fill:url(#linearGradient2395);fill-opacity:1;stroke:none;display:inline" />
<g
id="g2649"
style="display:inline">
<path
style="fill:url(#radialGradient2647);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 232.55816,219.5295 -15.92827,0.32199 3.08809,-15.15716 12.84018,14.83517 z"
id="path1443"
sodipodi:nodetypes="cccc" />
<path
style="fill:#812310;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 221.60041,219.29315 -4.41205,0.0782 0.85429,-3.98263 3.55776,3.90445 z"
id="path1452"
sodipodi:nodetypes="cccc" />
<path
style="fill:url(#linearGradient2643);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 269.44172,159.27421 0.098,8.91471 8.0581,8.72344 7.75906,0.7992 -52.80669,41.84092 -6.66532,-3.30696 -5.08243,-5.618 -1.08987,-5.91194 49.72911,-45.44137 z"
id="rect1437"
sodipodi:nodetypes="ccccccccc" />
<path
style="fill:url(#linearGradient2640);fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 268.94766,168.32844 8.3426,8.82719 -51.1007,38.68262 -4.9197,-5.4436 47.6778,-42.06621 z"
id="rect1446"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffe965;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;display:inline"
d="m 285.33776,177.73216 -8.16219,-0.86619 -7.7518,-8.67862 0.0132,-9.14293 8.36213,0.75209 7.18862,9.57682 0.35007,8.35883 z"
id="path1440"
sodipodi:nodetypes="ccccccc" />
<path
style="fill:#cb391c;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 280.72049,168.46367 0.1644,4.05654 -3.81335,-0.71676 -2.87504,-3.18901 -0.28089,-3.53393 3.85447,-0.16637 2.95041,3.54953 z"
id="path1449"
sodipodi:nodetypes="ccccccc" />
</g>
<g
id="g2657"
style="display:inline">
<path
style="fill:url(#linearGradient2406);fill-opacity:1;stroke:none"
d="m 183.88617,256.82796 0.99991,-16.30721 17.2878,8.44012 26.05488,38.00946 -29.28095,-1.13363 -15.06164,-29.00874 z"
id="rect2397"
sodipodi:nodetypes="cccccc" />
<path
style="fill:url(#linearGradient2325);fill-opacity:1;stroke:#000000;stroke-linejoin:round;stroke-opacity:1;display:inline"
d="m 200.90647,238.44836 -8.04601,15.77386 -7.05577,-13.57337 15.10178,-2.20049 z"
id="rect2207"
sodipodi:nodetypes="cccc" />
<path
style="fill:url(#linearGradient2227);fill-opacity:1;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
d="m 201.05389,238.55401 62.11704,24.91912 -7.88689,3.21429 -4.35152,9.30976 1.1716,9.96396 -59.31453,-31.72759 -0.49402,-7.36382 3.09592,-5.82826 5.6624,-2.48746 z"
id="rect1328"
sodipodi:nodetypes="ccccccccc" />
<path
style="fill:url(#radialGradient2317);fill-opacity:1;stroke:#000000;stroke-linejoin:round;stroke-opacity:1;display:inline"
d="m 255.27801,266.53504 7.9241,-3.04772 0.85337,10.24037 -3.9011,8.28983 -8.04601,3.77919 -1.341,-9.63083 4.51064,-9.63084 z"
id="rect2204"
sodipodi:nodetypes="ccccccc" />
<path
style="fill:url(#linearGradient2247);fill-opacity:1;stroke:none;display:inline"
d="m 195.7549,241.421 59.13059,24.7962 -4.5917,9.76614 -57.48995,-29.00967 2.95106,-5.55267 z"
id="rect2210"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#00b527;fill-opacity:1;stroke:none"
d="m 255.02263,275.21029 2.08411,-4.1069 2.96459,-1.06995 0.69433,3.37197 -1.76759,3.85723 -3.15516,1.38315 -0.82028,-3.4355 z"
id="rect2308"
sodipodi:nodetypes="ccccccc" />
<path
style="fill:#258209;fill-opacity:1;stroke:none;display:inline"
d="m 186.56849,241.00362 3.54963,-0.47312 -2.02297,3.53926 -1.52666,-3.06614 z"
id="rect2327"
sodipodi:nodetypes="cccc" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY st0 "fill:#93C5E4;"><!ENTITY st1 "fill:#FFF;"><!ENTITY st2 "fill:none;"><!ENTITY st3 "fill:#004975;"><!ENTITY st4 "fill:#00598E;"><!ENTITY st5 "fill:#0073BA;">]><svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="681.167px" height="778.583px" viewBox="0 0 681.167 778.583"><title>Druplicon</title><path style="&st4;" d="M510.167,144.833c-39.75-24.75-77.25-34.5-114.75-59.25c-23.25-15.75-55.5-53.25-82.5-85.5c-5.25,51.75-21,72.75-39,87.75c-38.25,30-62.25,39-95.25,57c-27.75,14.25-178.5,104.25-178.5,297.75s162.75,336,343.5,336s337.5-131.25,337.5-330S534.167,159.833,510.167,144.833z"/><path style="&st1;" d="M449.25,610.5c12,0,24.75,0.75,33.75,6.75s14.25,19.5,17.25,27s0,12-6,15c-5.25,3-6,1.5-11.25-8.25s-9.75-19.5-36-19.5s-34.5,9-47.25,19.5s-17.25,14.25-21.75,8.25s-3-12,5.25-19.5s21.75-19.5,34.5-24.75S437.25,610.5,449.25,610.5L449.25,610.5z"/><path style="&st1;" d="M324.75,696c15,12,37.5,21.75,85.5,21.75S492,704.25,507,693c6.75-5.25,9.75-0.75,10.5,2.25s2.25,7.5-3,12.75c-3.75,3.75-38.25,27.75-78.75,31.5s-95.25,6-128.25-24c-5.25-5.25-3.75-12.75,0-15.75s6.75-5.25,11.25-5.25S322.5,694.5,324.75,696L324.75,696z"/><path style="&st5;" d="M141,639c57-0.75,67.5-10.5,117.75-33c271.5-121.5,321.75-232.5,331.5-258s24-66.75,9-112.5c-2.896-8.832-5.006-15.924-6.53-21.63c-36.079-40.343-71.898-62.357-82.72-69.12c-39-24.75-77.25-34.5-114.75-59.25c-23.25-15-55.5-53.25-82.5-85.5c-5.25,51.75-20.25,73.5-39,87.75c-38.25,30-62.25,39-95.25,57C150.75,159.75,0,249,0,442.5c0,61.78,16.593,118.361,45.063,166.766L52.5,609C68.25,623.25,93,639.75,141,639z"/><path style="&st3;" d="M510,144.75c-39-24.75-77.25-34.5-114.75-59.25c-23.25-15-55.5-53.25-82.5-85.5c-5.25,51.75-20.25,73.5-39,87.75c-38.25,30-62.25,39-95.25,57C150.75,159.75,0,249,0,442.5c0,61.78,16.593,118.361,45.063,166.766C105.763,712.467,220.46,778.5,343.5,778.5c180.75,0,337.5-131.25,337.5-330c0-109.146-44.332-185.488-88.28-234.63C556.641,173.527,520.82,151.513,510,144.75z M601.164,232.547c49.242,61.564,74.211,134.221,74.211,215.953c0,47.428-9.033,92.23-26.849,133.165c-16.9,38.831-41.236,73.233-72.333,102.254c-61.47,57.364-144.107,88.956-232.693,88.956c-43.826,0-86.832-8.371-127.824-24.882c-40.263-16.217-76.547-39.438-107.843-69.02C41.923,616.678,5.625,532.696,5.625,442.5c0-80.336,26.076-151.72,77.503-212.167c39.289-46.18,81.655-71.774,98.047-80.634c7.958-4.341,15.423-8.172,22.643-11.877c22.63-11.615,44.005-22.586,73.404-45.645c15.677-11.914,32.377-30.785,39.489-78.702c24.774,29.466,53.522,62.579,75.49,76.752c19.5,12.87,39.501,21.888,58.844,30.61c18.298,8.25,37.219,16.781,55.942,28.663c0.031,0.021,0.702,0.438,0.702,0.438C562.421,184.11,591.581,220.566,601.164,232.547z"/><path style="&st0;" d="M316.5,15c10.5,30.75,9,46.5,9,53.25S321.75,93,309.75,102c-5.25,3.75-6.75,6.75-6.75,7.5c0,3,6.75,5.25,6.75,12c0,8.25-3.75,24.75-43.5,64.5s-96.75,75-141,96.75S60,303,54,292.5s2.25-33.75,30-64.5s115.5-75,115.5-75L309,76.5l6-29.25"/><path style="&st1;" d="M316.5,14.25c-6.75,49.5-21.75,64.5-42,80.25c-33.75,25.5-66.75,41.25-74.25,45c-19.5,9.75-90,48.75-126.75,105c-11.25,17.25,0,24,2.25,25.5s27.75,4.5,82.5-28.5S237,189,267.75,156.75c16.5-17.25,18.75-27,18.75-31.5c0-5.25-3.75-7.5-9.75-9c-3-0.75-3.75-2.25,0-4.5S296.25,102,300,99s21.75-15,22.5-34.5S321.75,31.5,316.5,14.25L316.5,14.25z"/><path style="&st1;" d="M147.75,559.5c0.75-58.5,55.5-113.25,124.5-114c87.75-0.75,148.5,87,192.75,86.25c37.5-0.75,109.5-74.25,144.75-74.25c37.5,0,48,39,48,62.25s-7.5,65.25-25.5,91.5s-29.25,36-50.25,34.5c-27-2.25-81-86.25-115.5-87.75c-43.5-1.5-138,90.75-212.25,90.75c-45,0-58.5-6.75-73.5-16.5C158.25,616.5,147,592.5,147.75,559.5L147.75,559.5z"/><path style="&st2;" d="M599.25,235.5c15,45.75,0.75,87-9,112.5s-60,136.5-331.5,258C208.5,628.5,198,638.25,141,639c-48,0.75-72.75-15.75-88.5-30l-7.437,0.266C105.763,712.467,220.46,778.5,343.5,778.5c180.75,0,337.5-131.25,337.5-330c0-109.146-44.332-185.488-88.28-234.63C594.244,219.576,596.354,226.668,599.25,235.5z"/></svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="540px"
height="122.523px" viewBox="0 0 540 122.523" enable-background="new 0 0 540 122.523" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="Layer_2">
<g>
<path fill="#00749A" d="M313.19,48.227h-21.257v2.255c6.649,0,7.718,1.425,7.718,9.857V75.54c0,8.431-1.068,9.975-7.718,9.975
c-5.105-0.712-8.55-3.444-13.3-8.669l-5.462-5.937c7.362-1.308,11.28-5.938,11.28-11.164c0-6.53-5.58-11.518-16.031-11.518h-20.9
v2.255c6.649,0,7.718,1.425,7.718,9.857V75.54c0,8.431-1.069,9.975-7.718,9.975v2.256h23.631v-2.256
c-6.649,0-7.718-1.544-7.718-9.975v-4.274h2.018l13.182,16.505h34.557c16.981,0,24.344-9.024,24.344-19.832
C337.534,57.133,330.172,48.227,313.19,48.227z M263.434,67.582V51.79h4.868c5.343,0,7.719,3.681,7.719,7.956
c0,4.157-2.376,7.837-7.719,7.837H263.434z M313.547,84.09h-0.832c-4.274,0-4.868-1.068-4.868-6.531V51.79c0,0,5.225,0,5.7,0
c12.35,0,14.605,9.024,14.605,16.031C328.152,75.064,325.896,84.09,313.547,84.09z"/>
<path fill="#00749A" d="M181.378,71.978l8.194-24.227c2.376-7.006,1.307-9.024-6.293-9.024v-2.376h22.325v2.376
c-7.481,0-9.262,1.781-12.231,10.45L179.834,89.79h-1.543l-12.114-37.17l-12.349,37.17h-1.544l-13.181-40.613
c-2.85-8.669-4.75-10.45-11.638-10.45v-2.376h26.363v2.376c-7.007,0-8.908,1.662-6.413,9.024l7.956,24.227l11.994-35.627h2.257
L181.378,71.978z"/>
<path fill="#00749A" d="M221.752,89.314c-13.062,0-23.75-9.618-23.75-21.376c0-11.637,10.689-21.257,23.75-21.257
c13.063,0,23.75,9.62,23.75,21.257C245.502,79.696,234.815,89.314,221.752,89.314z M221.752,50.365
c-10.924,0-14.725,9.855-14.725,17.574c0,7.839,3.801,17.576,14.725,17.576c11.045,0,14.845-9.737,14.845-17.576
C236.597,60.22,232.797,50.365,221.752,50.365z"/>
<path fill="#464342" d="M366.864,85.396v2.375H339.67v-2.375c7.957,0,9.382-2.018,9.382-13.895V52.502
c0-11.877-1.425-13.776-9.382-13.776v-2.376h24.581c12.231,0,19.002,6.294,19.002,14.727c0,8.194-6.771,14.606-19.002,14.606
h-6.769v5.817C357.482,83.378,358.907,85.396,366.864,85.396z M364.251,40.625h-6.769v20.664h6.769
c6.651,0,9.738-4.631,9.738-10.212C373.989,45.377,370.902,40.625,364.251,40.625z"/>
<path fill="#464342" d="M464.833,76.609l-0.594,2.137c-1.068,3.919-2.376,5.344-10.807,5.344h-1.663
c-6.174,0-7.243-1.425-7.243-9.856v-5.462c9.263,0,9.976,0.83,9.976,7.006h2.256V58.083h-2.256c0,6.175-0.713,7.006-9.976,7.006
V51.79h6.53c8.433,0,9.738,1.425,10.807,5.344l0.595,2.255h1.899l-0.83-11.162h-34.914v2.255c6.649,0,7.719,1.425,7.719,9.857
V75.54c0,7.713-0.908,9.656-6.151,9.933c-4.983-0.761-8.404-3.479-13.085-8.627l-5.463-5.937
c7.363-1.308,11.282-5.938,11.282-11.164c0-6.53-5.581-11.518-16.031-11.518h-20.9v2.255c6.649,0,7.718,1.425,7.718,9.857V75.54
c0,8.431-1.068,9.975-7.718,9.975v2.256h23.632v-2.256c-6.649,0-7.719-1.544-7.719-9.975v-4.274h2.019l13.181,16.505h48.806
l0.713-11.161H464.833z M401.896,67.582V51.79h4.868c5.344,0,7.72,3.681,7.72,7.956c0,4.157-2.376,7.837-7.72,7.837H401.896z"/>
<path fill="#464342" d="M488.939,89.314c-4.75,0-8.907-2.493-10.688-4.038c-0.594,0.595-1.662,2.376-1.899,4.038h-2.257V72.928
h2.375c0.951,7.837,6.412,12.468,13.419,12.468c3.8,0,6.888-2.137,6.888-5.699c0-3.087-2.731-5.463-7.6-7.719l-6.769-3.206
c-4.751-2.258-8.313-6.177-8.313-11.401c0-5.7,5.344-10.568,12.707-10.568c3.919,0,7.243,1.425,9.263,3.087
c0.593-0.475,1.187-1.782,1.544-3.208h2.256v14.014h-2.494c-0.832-5.582-3.919-10.213-10.212-10.213
c-3.325,0-6.414,1.9-6.414,4.87c0,3.087,2.494,4.749,8.195,7.362l6.53,3.206c5.701,2.731,7.956,7.127,7.956,10.689
C503.426,84.09,496.895,89.314,488.939,89.314z"/>
<path fill="#464342" d="M525.514,89.314c-4.751,0-8.908-2.493-10.688-4.038c-0.594,0.595-1.662,2.376-1.899,4.038h-2.257V72.928
h2.375c0.95,7.837,6.412,12.468,13.419,12.468c3.8,0,6.888-2.137,6.888-5.699c0-3.087-2.731-5.463-7.601-7.719l-6.769-3.206
c-4.75-2.258-8.313-6.177-8.313-11.401c0-5.7,5.344-10.568,12.707-10.568c3.919,0,7.243,1.425,9.263,3.087
c0.593-0.475,1.187-1.782,1.542-3.208h2.257v14.014h-2.493c-0.832-5.582-3.919-10.213-10.212-10.213
c-3.325,0-6.414,1.9-6.414,4.87c0,3.087,2.494,4.749,8.195,7.362l6.53,3.206c5.701,2.731,7.956,7.127,7.956,10.689
C540,84.09,533.469,89.314,525.514,89.314z"/>
<g>
<path fill="#464342" d="M8.708,61.26c0,20.802,12.089,38.779,29.619,47.298L13.258,39.872
C10.342,46.408,8.708,53.641,8.708,61.26z"/>
<path fill="#464342" d="M96.74,58.608c0-6.495-2.333-10.993-4.334-14.494c-2.664-4.329-5.161-7.995-5.161-12.324
c0-4.831,3.664-9.328,8.825-9.328c0.233,0,0.454,0.029,0.681,0.042c-9.35-8.566-21.807-13.796-35.489-13.796
c-18.36,0-34.513,9.42-43.91,23.688c1.233,0.037,2.395,0.063,3.382,0.063c5.497,0,14.006-0.667,14.006-0.667
c2.833-0.167,3.167,3.994,0.337,4.329c0,0-2.847,0.335-6.015,0.501L48.2,93.547l11.501-34.493l-8.188-22.434
c-2.83-0.166-5.511-0.501-5.511-0.501c-2.832-0.166-2.5-4.496,0.332-4.329c0,0,8.679,0.667,13.843,0.667
c5.496,0,14.006-0.667,14.006-0.667c2.835-0.167,3.168,3.994,0.337,4.329c0,0-2.853,0.335-6.015,0.501l18.992,56.494
l5.242-17.517C95.011,68.328,96.74,63.107,96.74,58.608z"/>
<path fill="#464342" d="M62.184,65.857l-15.768,45.819c4.708,1.384,9.687,2.141,14.846,2.141c6.12,0,11.989-1.058,17.452-2.979
c-0.141-0.225-0.269-0.464-0.374-0.724L62.184,65.857z"/>
<path fill="#464342" d="M107.376,36.046c0.226,1.674,0.354,3.471,0.354,5.404c0,5.333-0.996,11.328-3.996,18.824l-16.053,46.413
c15.624-9.111,26.133-26.038,26.133-45.426C113.815,52.124,111.481,43.532,107.376,36.046z"/>
<path fill="#464342" d="M61.262,0C27.483,0,0,27.481,0,61.26c0,33.783,27.483,61.263,61.262,61.263
c33.778,0,61.265-27.48,61.265-61.263C122.526,27.481,95.04,0,61.262,0z M61.262,119.715c-32.23,0-58.453-26.223-58.453-58.455
c0-32.23,26.222-58.451,58.453-58.451c32.229,0,58.45,26.221,58.45,58.451C119.712,93.492,93.491,119.715,61.262,119.715z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -93,15 +93,9 @@ class PHPFcidWebAppMixin(StaticWebAppMixin):
) )
class PHPFPMWebAppMixin(StaticWebAppMixin): class PHPFPMWebAppMixin(PHPFcidWebAppMixin):
backend = backends.phpfpm.PHPFPMBackend backend = backends.phpfpm.PHPFPMBackend
type_value = 'php5.5' type_value = 'php5.5'
token = random_ascii(100)
page = (
'index.php',
'<?php print("Hello World! %s");\n?>\n' % token,
'Hello World! %s' % token,
)
class RESTWebAppMixin(object): class RESTWebAppMixin(object):
@ -170,10 +164,18 @@ class AdminWebAppMixin(WebAppMixin):
self.assertNotEqual(url, self.selenium.current_url) self.assertNotEqual(url, self.selenium.current_url)
class RESTWebAppTest(StaticWebAppMixin, RESTWebAppMixin, WebAppMixin, BaseLiveServerTestCase):
pass
class RESTWebAppTest(PHPFcidWebAppMixin, RESTWebAppMixin, WebAppMixin, BaseLiveServerTestCase): class RESTWebAppTest(PHPFcidWebAppMixin, RESTWebAppMixin, WebAppMixin, BaseLiveServerTestCase):
pass pass
class RESTWebAppTest(PHPFPMWebAppMixin, RESTWebAppMixin, WebAppMixin, BaseLiveServerTestCase):
pass
#class AdminWebAppTest(AdminWebAppMixin, BaseLiveServerTestCase): #class AdminWebAppTest(AdminWebAppMixin, BaseLiveServerTestCase):
# pass # pass

View File

@ -71,14 +71,12 @@ class RESTWebsiteMixin(RESTWebAppMixin):
self.rest.websites.create(name=name, domains=[domain.url], contents=[{'webapp': webapp.url}]) self.rest.websites.create(name=name, domains=[domain.url], contents=[{'webapp': webapp.url}])
class RESTWebsiteTest(RESTWebsiteMixin, StaticWebAppMixin, WebsiteMixin, BaseLiveServerTestCase):
#class RESTWebsiteTest(RESTWebsiteMixin, StaticWebAppMixin, WebsiteMixin, BaseLiveServerTestCase): pass
# pass
PHPFPMWebAppMixin class RESTWebsiteTest(RESTWebsiteMixin, PHPFcidWebAppMixin, WebsiteMixin, BaseLiveServerTestCase):
#class RESTWebsiteTest(RESTWebsiteMixin, PHPFcidWebAppMixin, WebsiteMixin, BaseLiveServerTestCase): pass
# pass
class RESTWebsiteTest(RESTWebsiteMixin, PHPFPMWebAppMixin, WebsiteMixin, BaseLiveServerTestCase): class RESTWebsiteTest(RESTWebsiteMixin, PHPFPMWebAppMixin, WebsiteMixin, BaseLiveServerTestCase):