diff --git a/apps/assets/models.py b/apps/assets/models.py index 6c9556db8..740c2445e 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -8,7 +8,7 @@ from django.utils.translation import ugettext_lazy as _ class AssetGroup(models.Model): name = models.CharField(max_length=64, unique=True, null=True, blank=True, verbose_name=_('Name')) created_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) - comment = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('Comment')) + comment = models.TextField(blank=True, verbose_name=_('Comment')) def __unicode__(self): return self.name @@ -27,7 +27,7 @@ class IDC(models.Model): date_added = models.DateField(auto_now=True, null=True, verbose_name=_('Date added')) operator = models.CharField(max_length=32, blank=True, verbose_name=_('Operator')) created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by')) - comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment')) + comment = models.TextField(blank=True, verbose_name=_('Comment')) def __unicode__(self): return self.name @@ -37,11 +37,11 @@ class IDC(models.Model): class AssetExtend(models.Model): - key = models.CharField(max_length=64, null=True, blank=True, verbose_name=u'key') - value = models.CharField(max_length=64, null=True, blank=True, verbose_name=u'value') - created_by = models.CharField(max_length=32, blank=True, verbose_name=u"Created by") + key = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('KEY')) + value = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('VALUE')) + created_by = models.CharField(max_length=32, blank=True, verbose_name=_("Created by")) date_added = models.DateTimeField(auto_now=True, null=True, blank=True) - comment = models.CharField(max_length=128, blank=True, verbose_name=u"Comment") + comment = models.TextField(blank=True, verbose_name=_('Comment')) def __unicode__(self): return self.name @@ -51,15 +51,15 @@ class AssetExtend(models.Model): class AdminUser(models.Model): - name = models.CharField(max_length=128, unique=True, null=True, blank=True, verbose_name=u"用户名称") - username = models.CharField(max_length=16, null=True, blank=True, verbose_name=u"用户名") - password = models.CharField(max_length=256, null=True, blank=True, verbose_name=u"密码") - private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=u"私钥") - is_default = models.BooleanField(default=True, verbose_name=u"是否默认") - auto_update = models.BooleanField(default=True, verbose_name=u"自动更新") + name = models.CharField(max_length=128, unique=True, null=True, blank=True, verbose_name=_('Name')) + username = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Username')) + password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_('Password')) + private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH private key')) + is_default = models.BooleanField(default=True, verbose_name=_('As default')) + auto_update = models.BooleanField(default=True, verbose_name=_('Auto update pass/key')) date_added = models.DateTimeField(auto_now=True, null=True, blank=True) - create_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=u"创建者") - comment = models.CharField(max_length=128, blank=True, verbose_name=u"备注") + create_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) + comment = models.TextField(blank=True, verbose_name=_('Comment')) def __unicode__(self): return self.name @@ -69,22 +69,26 @@ class AdminUser(models.Model): class SysUser(models.Model): - name = models.CharField(max_length=128, unique=True, null=True, blank=True, verbose_name=u"用户名称") - username = models.CharField(max_length=16, null=True, blank=True, verbose_name=u"用户名") - password = models.CharField(max_length=256, null=True, blank=True, verbose_name=u"密码") - protocol = models.CharField(max_length=16, null=True, blank=True, verbose_name=u"协议") - private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=u"私钥") - public_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=u"公钥") - is_default = models.BooleanField(default=True, verbose_name=u"是否显示") - auto_push = models.BooleanField(default=True, verbose_name=u"自动推送") - auto_update = models.BooleanField(default=True, verbose_name=u"自动更新") - sudo = models.CharField(max_length=4096, null=True, blank=True, verbose_name=u"私钥") - shell = models.CharField(max_length=64, null=True, blank=True, verbose_name=u"shell环境") - home = models.CharField(max_length=64, null=True, blank=True, verbose_name=u"home目录") - uid = models.IntegerField(null=True, blank=True, verbose_name=u"uid") - date_added = models.DateTimeField(auto_now=True, null=True, blank=True) - create_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=u"创建者") - comment = models.CharField(max_length=128, blank=True, verbose_name=u"备注") + PROTOCOL_CHOICES = ( + ('ssh', 'ssh'), + ('telnet', 'telnet'), + ) + name = models.CharField(max_length=128, unique=True, verbose_name=_('Name')) + username = models.CharField(max_length=16, blank=True, verbose_name=_('Username')) + password = models.CharField(max_length=256, blank=True, verbose_name=_('Password')) + protocol = models.CharField(max_length=16, default='ssh', verbose_name=_('Protocol')) + private_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH private key')) + public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key')) + is_default = models.BooleanField(default=True, verbose_name=_('As default')) + auto_push = models.BooleanField(default=True, verbose_name=_('Auto push')) + auto_update = models.BooleanField(default=True, verbose_name=_('Auto update pass/key')) + sudo = models.TextField(max_length=4096, blank=True, verbose_name=_('Sudo')) + shell = models.CharField(max_length=64, blank=True, verbose_name=_('Shell')) + home = models.CharField(max_length=64, blank=True, verbose_name=_('Home')) + uid = models.IntegerField(blank=True, verbose_name=_('Uid')) + date_added = models.DateTimeField(auto_now=True, null=True) + create_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by')) + comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment')) def __unicode__(self): return self.name @@ -114,12 +118,9 @@ class Asset(models.Model): cabinet_no = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Cabinet number')) cabinet_pos = models.IntegerField(null=True, blank=True, verbose_name=_('Cabinet position')) number = models.CharField(max_length=32, null=True, blank=True, unique=True, verbose_name=_('Asset number')) - status = models.ForeignKey(AssetExtend, related_name="asset_extend_status", null=True, - blank=True, verbose_name=_('Asset status')) - type = models.ForeignKey(AssetExtend, related_name="asset_extend_type", null=True, - blank=True, verbose_name=_('Asset type')) - env = models.ForeignKey(AssetExtend, related_name="asset_extend_env", null=True, - blank=True, verbose_name=_('Asset environment')) + status = models.ManyToManyField(AssetExtend, related_name="asset_status_extend", verbose_name=_('Asset status')) + type = models.ManyToManyField(AssetExtend, related_name="asset_type_extend", verbose_name=_('Asset type')) + env = models.ManyToManyField(AssetExtend, related_name="asset_env_extend", verbose_name=_('Asset environment')) sn = models.CharField(max_length=128, null=True, blank=True, unique=True, verbose_name=_('Serial number')) created_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) is_active = models.BooleanField(default=True, verbose_name=_('Is active')) @@ -134,11 +135,11 @@ class Asset(models.Model): class Label(models.Model): - key = models.CharField(max_length=64, null=True, blank=True, verbose_name=u'key') - value = models.CharField(max_length=64, null=True, blank=True, verbose_name=u'value') - asset = models.ForeignKey(Asset, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=u'label') + key = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('KEY')) + value = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('VALUE')) + asset = models.ForeignKey(Asset, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_('Asset')) created_by = models.CharField(max_length=32, blank=True, verbose_name=_("Created by")) - date_added = models.DateTimeField(auto_now=True, null=True, blank=True) + date_added = models.DateTimeField(auto_now=True, null=True) comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment')) def __unicode__(self): @@ -147,4 +148,3 @@ class Label(models.Model): class Meta: db_table = 'label' - diff --git a/apps/assets/templates/assets/assetgroup_add.html b/apps/assets/templates/assets/assetgroup_add.html new file mode 100644 index 000000000..112eb0484 --- /dev/null +++ b/apps/assets/templates/assets/assetgroup_add.html @@ -0,0 +1,66 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static %} +{% load bootstrap %} +{% block custom_head_css_js %} + + +{% endblock %} + +{% block content %} +
+{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/assetgroup_list.html b/apps/assets/templates/assets/assetgroup_list.html new file mode 100644 index 000000000..51605a549 --- /dev/null +++ b/apps/assets/templates/assets/assetgroup_list.html @@ -0,0 +1,59 @@ +{% extends '_list_base.html' %} +{% load i18n %} +{% load common_tags %} +{% block content_left_head %} + {% trans "Create asset group" %} +{% endblock %} + +{% block table_head %} +