コード例 #1
0
 def test_IPAddressField(self):
     lazy_func = lazy(lambda: '127.0.0.1', six.text_type)
     self.assertIsInstance(IPAddressField().get_prep_value(lazy_func()),
                           six.text_type)
     lazy_func = lazy(lambda: 0, int)
     self.assertIsInstance(IPAddressField().get_prep_value(lazy_func()),
                           six.text_type)
コード例 #2
0
class IPRange(models.Model):
    ip_from = IPAddressField()
    ip_to = IPAddressField(blank=True, null=True)
    partner = models.ForeignKey(Partner,
                                related_name='ips_allowed',
                                db_index=True)

    @staticmethod
    def _ipv4_to_int(ip):
        """
        >>> f = IPRange._ipv4_to_int
        >>> f('0.0.0.0')
        0L
        >>> f('255.255.255.255')
        4294967295L
        """
        hexn = ''.join(["%02X" % long(i) for i in ip.split('.')])
        return long(hexn, 16)

    def in_range(self, ip_str):
        if self.ip_to:
            return IPRange._ipv4_to_int(self.ip_from) <= IPRange._ipv4_to_int(
                ip_str) <= IPRange._ipv4_to_int(self.ip_to)
        else:
            return ip_str == self.ip_from
コード例 #3
0
 def test_IPAddressField(self):
     with warnings.catch_warnings(record=True):
         warnings.simplefilter("always")
         lazy_func = lazy(lambda: '127.0.0.1', six.text_type)
         self.assertIsInstance(IPAddressField().get_prep_value(lazy_func()),
                               six.text_type)
         lazy_func = lazy(lambda: 0, int)
         self.assertIsInstance(IPAddressField().get_prep_value(lazy_func()),
                               six.text_type)
コード例 #4
0
class Device(models.Model):
    human_readable = CharField(max_length=300, verbose_name='Идентификатор')
    is_active = BooleanField(default=True, verbose_name='Активен')
    ip_address = IPAddressField()
    fw_version = CharField(max_length=20,
                           blank=True,
                           verbose_name='Версия прошивки')
    last_queried = DateTimeField(default=datetime.datetime.now(),
                                 verbose_name='Время последнего опроса')
    query_status = CharField(max_length=20,
                             blank=True,
                             default='queue',
                             verbose_name='Результат опроса',
                             choices=[('queue', 'В очереди'),
                                      ('query', 'Опрашивается'),
                                      ('success', 'Успех'),
                                      ('failure', 'Ошибка')])

    login = CharField(max_length=200)
    password = CharField(max_length=128)

    class Meta:
        verbose_name = u'Устройство'
        verbose_name_plural = u'Устройства'

    def __str__(self):
        return '%s@%s' % (self.human_readable, self.ip_address)
コード例 #5
0
ファイル: models.py プロジェクト: cargious/ocf
class SSHServer(Resource):
    # SSHServer fields
    ip_address = IPAddressField(
        "IP address",
        help_text="Specify the server's IP address.",
    )
    ssh_port = LimitedIntegerField(
        "SSH port number",
        min_value=1,
        max_value=2**16 - 1,
        default=22,
        help_text="Specify the SSH port number to use.")

    # end

    def is_alive(self):
        """Ping the server and check if it's alive.
        
        @return: True if ping succeeds, False otherwise.
        """
        ret = subprocess.call(
            shlex.split("ping -c 1 -W 2 %s" % self.ip_address),
            stdout=open('/dev/null', 'w'),
            stderr=subprocess.STDOUT,
        )

        if ret == 0:
            return True
        else:
            return False

    def exec_command(self, command, **connection_info):
        """Connect to the server using an SSH session and execute a command.
        
        @param command: The command to execute
        @type command: C{str}
        @param username: The username to use to connect to the server.
        @type username: C{str}
        @keyword connection_info: A dict of other info to pass to
            C{paramiko.SSHClient.exec_command}.
        @return: A (out, err) tuple that is the output read on the
            stdout and stderr channels.
        @rtype: C{tuple(str, str)}
        """

        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(str(self.ip_address),
                       port=int(self.ssh_port),
                       **connection_info)
        _, sout, serr = client.exec_command(command)
        o = sout.read()
        e = serr.read()
        client.close()
        return o, e

    def __unicode__(self):
        return u"SSH server at IP %s" % self.ip_address
コード例 #6
0
class BaseRevisionMixin(models.Model):

    """This is an abstract model used as a mixin: Do not override any of the
    core model methods but respect the inheritor's freedom to do so itself."""

    revision_number = models.IntegerField(
        editable=False, verbose_name=_("revision number")
    )

    user_message = models.TextField(blank=True,)
    automatic_log = models.TextField(blank=True, editable=False,)

    ip_address = IPAddressField(_("IP address"), blank=True, null=True, editable=False)
    user = models.ForeignKey(
        django_settings.AUTH_USER_MODEL,
        verbose_name=_("user"),
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )

    modified = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

    previous_revision = models.ForeignKey(
        "self", blank=True, null=True, on_delete=models.SET_NULL
    )

    # NOTE! The semantics of these fields are not related to the revision itself
    # but the actual related object. If the latest revision says "deleted=True" then
    # the related object should be regarded as deleted.
    deleted = models.BooleanField(verbose_name=_("deleted"), default=False,)
    locked = models.BooleanField(verbose_name=_("locked"), default=False,)

    def set_from_request(self, request):
        if request.user.is_authenticated:
            self.user = request.user
            if settings.LOG_IPS_USERS:
                self.ip_address = request.META.get("REMOTE_ADDR", None)
        elif settings.LOG_IPS_ANONYMOUS:
            self.ip_address = request.META.get("REMOTE_ADDR", None)

    def inherit_predecessor(self, predecessor):
        """
        This is a naive way of inheriting, assuming that ``predecessor`` is in
        fact the predecessor and there hasn't been any intermediate changes!

        :param: predecessor is an instance of whatever object for which
        object.current_revision implements BaseRevisionMixin.
        """
        predecessor = predecessor.current_revision
        self.previous_revision = predecessor
        self.deleted = predecessor.deleted
        self.locked = predecessor.locked
        self.revision_number = predecessor.revision_number + 1

    class Meta:
        abstract = True
コード例 #7
0
class BaseRevisionMixin(models.Model):
    """This is an abstract model used as a mixin: Do not override any of the
    core model methods but respect the inheritor's freedom to do so itself."""

    revision_number = models.IntegerField(editable=False,
                                          verbose_name=_('revision number'))

    user_message = models.TextField(blank=True, )
    automatic_log = models.TextField(
        blank=True,
        editable=False,
    )

    ip_address = IPAddressField(_('IP address'),
                                blank=True,
                                null=True,
                                editable=False)
    user = models.ForeignKey(compat.USER_MODEL,
                             verbose_name=_('user'),
                             blank=True,
                             null=True,
                             on_delete=models.SET_NULL)

    modified = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

    previous_revision = models.ForeignKey('self',
                                          blank=True,
                                          null=True,
                                          on_delete=models.SET_NULL)

    # NOTE! The semantics of these fields are not related to the revision itself
    # but the actual related object. If the latest revision says "deleted=True" then
    # the related object should be regarded as deleted.
    deleted = models.BooleanField(
        verbose_name=_('deleted'),
        default=False,
    )
    locked = models.BooleanField(
        verbose_name=_('locked'),
        default=False,
    )

    def set_from_request(self, request):
        if request.user.is_authenticated():
            self.user = request.user
            if settings.LOG_IPS_USERS:
                self.ip_address = request.META.get('REMOTE_ADDR', None)
        elif settings.LOG_IPS_ANONYMOUS:
            self.ip_address = request.META.get('REMOTE_ADDR', None)

    class Meta:
        abstract = True
コード例 #8
0
ファイル: tests.py プロジェクト: allanice001/django
 class IPAddressModel(models.Model):
     ip = IPAddressField()
コード例 #9
0
 def test_IPAddressField(self):
     self.assertIsInstance(IPAddressField().get_prep_value('127.0.0.1'),
                           six.text_type)
     self.assertIsInstance(IPAddressField().get_prep_value(0),
                           six.text_type)
コード例 #10
0
class Migration(migrations.Migration):

    dependencies = [
        ('sites', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('contenttypes', '0001_initial'),
        ('auth', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Article',
            fields=[
                ('id',
                 models.AutoField(serialize=False,
                                  primary_key=True,
                                  auto_created=True,
                                  verbose_name='ID')),
                ('created',
                 models.DateTimeField(verbose_name='created',
                                      auto_now_add=True)),
                ('modified',
                 models.DateTimeField(
                     verbose_name='modified',
                     auto_now=True,
                     help_text='Article properties last modified')),
                ('group_read',
                 models.BooleanField(default=True,
                                     verbose_name='group read access')),
                ('group_write',
                 models.BooleanField(default=True,
                                     verbose_name='group write access')),
                ('other_read',
                 models.BooleanField(default=True,
                                     verbose_name='others read access')),
                ('other_write',
                 models.BooleanField(default=True,
                                     verbose_name='others write access')),
            ],
            options={
                'permissions':
                (('moderate', 'Can edit all articles and lock/unlock/restore'),
                 ('assign', 'Can change ownership of any article'),
                 ('grant', 'Can assign permissions to other users')),
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name='ArticleForObject',
            fields=[
                ('id',
                 models.AutoField(serialize=False,
                                  primary_key=True,
                                  auto_created=True,
                                  verbose_name='ID')),
                ('object_id',
                 models.PositiveIntegerField(verbose_name='object ID')),
                ('is_mptt', models.BooleanField(default=False,
                                                editable=False)),
                ('article', models.ForeignKey(to='wiki.Article')),
                ('content_type',
                 models.ForeignKey(
                     related_name='content_type_set_for_articleforobject',
                     verbose_name='content type',
                     to='contenttypes.ContentType')),
            ],
            options={
                'verbose_name_plural': 'Articles for object',
                'verbose_name': 'Article for object',
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name='ArticlePlugin',
            fields=[
                ('id',
                 models.AutoField(serialize=False,
                                  primary_key=True,
                                  auto_created=True,
                                  verbose_name='ID')),
                ('deleted', models.BooleanField(default=False)),
                ('created', models.DateTimeField(auto_now_add=True)),
            ],
            options={},
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name='ArticleRevision',
            fields=[
                ('id',
                 models.AutoField(serialize=False,
                                  primary_key=True,
                                  auto_created=True,
                                  verbose_name='ID')),
                ('revision_number',
                 models.IntegerField(verbose_name='revision number',
                                     editable=False)),
                ('user_message', models.TextField(blank=True)),
                ('automatic_log', models.TextField(blank=True,
                                                   editable=False)),
                ('ip_address',
                 IPAddressField(null=True,
                                verbose_name='IP address',
                                blank=True,
                                editable=False)),
                ('modified', models.DateTimeField(auto_now=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('deleted',
                 models.BooleanField(default=False, verbose_name='deleted')),
                ('locked',
                 models.BooleanField(default=False, verbose_name='locked')),
                ('content',
                 models.TextField(blank=True,
                                  verbose_name='article contents')),
                ('title',
                 models.CharField(
                     max_length=512,
                     verbose_name='article title',
                     help_text=
                     'Each revision contains a title field that must be filled out, even if the title has not changed'
                 )),
                ('article',
                 models.ForeignKey(to='wiki.Article', verbose_name='article')),
                ('previous_revision',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     blank=True,
                     to='wiki.ArticleRevision')),
                ('user',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     blank=True,
                     to=settings.AUTH_USER_MODEL,
                     verbose_name='user')),
            ],
            options={
                'get_latest_by': 'revision_number',
                'ordering': ('created', ),
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name='ReusablePlugin',
            fields=[
                ('articleplugin_ptr',
                 models.OneToOneField(primary_key=True,
                                      parent_link=True,
                                      to='wiki.ArticlePlugin',
                                      serialize=False,
                                      auto_created=True)),
                ('articles',
                 models.ManyToManyField(related_name='shared_plugins_set',
                                        to='wiki.Article')),
            ],
            options={},
            bases=('wiki.articleplugin', ),
        ),
        migrations.CreateModel(
            name='RevisionPlugin',
            fields=[
                ('articleplugin_ptr',
                 models.OneToOneField(primary_key=True,
                                      parent_link=True,
                                      to='wiki.ArticlePlugin',
                                      serialize=False,
                                      auto_created=True)),
            ],
            options={},
            bases=('wiki.articleplugin', ),
        ),
        migrations.CreateModel(
            name='RevisionPluginRevision',
            fields=[
                ('id',
                 models.AutoField(serialize=False,
                                  primary_key=True,
                                  auto_created=True,
                                  verbose_name='ID')),
                ('revision_number',
                 models.IntegerField(verbose_name='revision number',
                                     editable=False)),
                ('user_message', models.TextField(blank=True)),
                ('automatic_log', models.TextField(blank=True,
                                                   editable=False)),
                ('ip_address',
                 IPAddressField(null=True,
                                verbose_name='IP address',
                                blank=True,
                                editable=False)),
                ('modified', models.DateTimeField(auto_now=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('deleted',
                 models.BooleanField(default=False, verbose_name='deleted')),
                ('locked',
                 models.BooleanField(default=False, verbose_name='locked')),
                ('plugin',
                 models.ForeignKey(related_name='revision_set',
                                   to='wiki.RevisionPlugin')),
                ('previous_revision',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     blank=True,
                     to='wiki.RevisionPluginRevision')),
                ('user',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     blank=True,
                     to=settings.AUTH_USER_MODEL,
                     verbose_name='user')),
            ],
            options={
                'get_latest_by': 'revision_number',
                'ordering': ('-created', ),
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name='SimplePlugin',
            fields=[
                ('articleplugin_ptr',
                 models.OneToOneField(primary_key=True,
                                      parent_link=True,
                                      to='wiki.ArticlePlugin',
                                      serialize=False,
                                      auto_created=True)),
                ('article_revision',
                 models.ForeignKey(to='wiki.ArticleRevision')),
            ],
            options={},
            bases=('wiki.articleplugin', ),
        ),
        migrations.CreateModel(
            name='URLPath',
            fields=[
                ('id',
                 models.AutoField(serialize=False,
                                  primary_key=True,
                                  auto_created=True,
                                  verbose_name='ID')),
                ('slug',
                 models.SlugField(null=True, blank=True, verbose_name='slug')),
                ('lft',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('rght',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('tree_id',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('level',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('article',
                 models.ForeignKey(
                     help_text=
                     'This field is automatically updated, but you need to populate it when creating a new URL path.',
                     on_delete=django.db.models.deletion.CASCADE,
                     to='wiki.Article',
                     verbose_name='article')),
                ('parent',
                 mptt.fields.TreeForeignKey(
                     blank=True,
                     help_text='Position of URL path in the tree.',
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='children',
                     to='wiki.URLPath')),
                ('site',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='sites.Site')),
            ],
            options={
                'verbose_name_plural': 'URL paths',
                'verbose_name': 'URL path',
            },
            bases=(models.Model, ),
        ),
        migrations.AlterUniqueTogether(
            name='urlpath',
            unique_together=set([('site', 'parent', 'slug')]),
        ),
        migrations.AddField(
            model_name='revisionplugin',
            name='current_revision',
            field=models.OneToOneField(
                related_name='plugin_set',
                null=True,
                help_text=
                'The revision being displayed for this plugin. If you need to do a roll-back, simply change the value of this field.',
                blank=True,
                to='wiki.RevisionPluginRevision',
                verbose_name='current revision'),
            preserve_default=True,
        ),
        migrations.AlterUniqueTogether(
            name='articlerevision',
            unique_together=set([('article', 'revision_number')]),
        ),
        migrations.AddField(
            model_name='articleplugin',
            name='article',
            field=models.ForeignKey(to='wiki.Article', verbose_name='article'),
            preserve_default=True,
        ),
        migrations.AlterUniqueTogether(
            name='articleforobject',
            unique_together=set([('content_type', 'object_id')]),
        ),
        migrations.AddField(
            model_name='article',
            name='current_revision',
            field=models.OneToOneField(
                related_name='current_set',
                null=True,
                help_text=
                'The revision being displayed for this article. If you need to do a roll-back, simply change the value of this field.',
                blank=True,
                to='wiki.ArticleRevision',
                verbose_name='current revision'),
            preserve_default=True,
        ),
        migrations.AddField(
            model_name='article',
            name='group',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                help_text=
                'Like in a UNIX file system, permissions can be given to a user according to group membership. Groups are handled through the Django auth system.',
                blank=True,
                to=GROUP_MODEL,
                verbose_name='group'),
            preserve_default=True,
        ),
        migrations.AddField(
            model_name='article',
            name='owner',
            field=models.ForeignKey(
                related_name='owned_articles',
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                help_text=
                'The owner of the article, usually the creator. The owner always has both read and write access.',
                blank=True,
                to=settings.AUTH_USER_MODEL,
                verbose_name='owner'),
            preserve_default=True,
        ),
    ]
コード例 #11
0
class Migration(migrations.Migration):

    dependencies = [
        ("sites", "0001_initial"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ("contenttypes", "0001_initial"),
        ("auth", "0001_initial"),
    ]

    operations = [
        migrations.CreateModel(
            name="Article",
            fields=[
                (
                    "id",
                    models.AutoField(
                        serialize=False,
                        primary_key=True,
                        auto_created=True,
                        verbose_name="ID",
                    ),
                ),
                (
                    "created",
                    models.DateTimeField(verbose_name="created",
                                         auto_now_add=True),
                ),
                (
                    "modified",
                    models.DateTimeField(
                        verbose_name="modified",
                        auto_now=True,
                        help_text="Article properties last modified",
                    ),
                ),
                (
                    "group_read",
                    models.BooleanField(default=True,
                                        verbose_name="group read access"),
                ),
                (
                    "group_write",
                    models.BooleanField(default=True,
                                        verbose_name="group write access"),
                ),
                (
                    "other_read",
                    models.BooleanField(default=True,
                                        verbose_name="others read access"),
                ),
                (
                    "other_write",
                    models.BooleanField(default=True,
                                        verbose_name="others write access"),
                ),
            ],
            options={
                "permissions": (
                    ("moderate",
                     "Can edit all articles and lock/unlock/restore"),
                    ("assign", "Can change ownership of any article"),
                    ("grant", "Can assign permissions to other users"),
                ),
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name="ArticleForObject",
            fields=[
                (
                    "id",
                    models.AutoField(
                        serialize=False,
                        primary_key=True,
                        auto_created=True,
                        verbose_name="ID",
                    ),
                ),
                ("object_id",
                 models.PositiveIntegerField(verbose_name="object ID")),
                ("is_mptt", models.BooleanField(default=False,
                                                editable=False)),
                (
                    "article",
                    models.ForeignKey(to="wiki.Article",
                                      on_delete=models.CASCADE),
                ),
                (
                    "content_type",
                    models.ForeignKey(
                        related_name="content_type_set_for_articleforobject",
                        verbose_name="content type",
                        to="contenttypes.ContentType",
                        on_delete=models.CASCADE,
                    ),
                ),
            ],
            options={
                "verbose_name_plural": "Articles for object",
                "verbose_name": "Article for object",
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name="ArticlePlugin",
            fields=[
                (
                    "id",
                    models.AutoField(
                        serialize=False,
                        primary_key=True,
                        auto_created=True,
                        verbose_name="ID",
                    ),
                ),
                ("deleted", models.BooleanField(default=False)),
                ("created", models.DateTimeField(auto_now_add=True)),
            ],
            options={},
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name="ArticleRevision",
            fields=[
                (
                    "id",
                    models.AutoField(
                        serialize=False,
                        primary_key=True,
                        auto_created=True,
                        verbose_name="ID",
                    ),
                ),
                (
                    "revision_number",
                    models.IntegerField(verbose_name="revision number",
                                        editable=False),
                ),
                ("user_message", models.TextField(blank=True)),
                ("automatic_log", models.TextField(blank=True,
                                                   editable=False)),
                (
                    "ip_address",
                    IPAddressField(null=True,
                                   verbose_name="IP address",
                                   blank=True,
                                   editable=False),
                ),
                ("modified", models.DateTimeField(auto_now=True)),
                ("created", models.DateTimeField(auto_now_add=True)),
                ("deleted",
                 models.BooleanField(default=False, verbose_name="deleted")),
                ("locked",
                 models.BooleanField(default=False, verbose_name="locked")),
                (
                    "content",
                    models.TextField(blank=True,
                                     verbose_name="article contents"),
                ),
                (
                    "title",
                    models.CharField(
                        max_length=512,
                        verbose_name="article title",
                        help_text=
                        "Each revision contains a title field that must be filled out, even if the title has not changed",
                    ),
                ),
                (
                    "article",
                    models.ForeignKey(
                        to="wiki.Article",
                        verbose_name="article",
                        on_delete=models.CASCADE,
                    ),
                ),
                (
                    "previous_revision",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        blank=True,
                        to="wiki.ArticleRevision",
                    ),
                ),
                (
                    "user",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        blank=True,
                        to=settings.AUTH_USER_MODEL,
                        verbose_name="user",
                    ),
                ),
            ],
            options={
                "get_latest_by": "revision_number",
                "ordering": ("created", ),
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name="ReusablePlugin",
            fields=[
                (
                    "articleplugin_ptr",
                    models.OneToOneField(
                        primary_key=True,
                        parent_link=True,
                        to="wiki.ArticlePlugin",
                        serialize=False,
                        auto_created=True,
                        on_delete=models.CASCADE,
                    ),
                ),
                (
                    "articles",
                    models.ManyToManyField(related_name="shared_plugins_set",
                                           to="wiki.Article"),
                ),
            ],
            options={},
            bases=("wiki.articleplugin", ),
        ),
        migrations.CreateModel(
            name="RevisionPlugin",
            fields=[
                (
                    "articleplugin_ptr",
                    models.OneToOneField(
                        primary_key=True,
                        parent_link=True,
                        to="wiki.ArticlePlugin",
                        serialize=False,
                        auto_created=True,
                        on_delete=models.CASCADE,
                    ),
                ),
            ],
            options={},
            bases=("wiki.articleplugin", ),
        ),
        migrations.CreateModel(
            name="RevisionPluginRevision",
            fields=[
                (
                    "id",
                    models.AutoField(
                        serialize=False,
                        primary_key=True,
                        auto_created=True,
                        verbose_name="ID",
                    ),
                ),
                (
                    "revision_number",
                    models.IntegerField(verbose_name="revision number",
                                        editable=False),
                ),
                ("user_message", models.TextField(blank=True)),
                ("automatic_log", models.TextField(blank=True,
                                                   editable=False)),
                (
                    "ip_address",
                    IPAddressField(null=True,
                                   verbose_name="IP address",
                                   blank=True,
                                   editable=False),
                ),
                ("modified", models.DateTimeField(auto_now=True)),
                ("created", models.DateTimeField(auto_now_add=True)),
                ("deleted",
                 models.BooleanField(default=False, verbose_name="deleted")),
                ("locked",
                 models.BooleanField(default=False, verbose_name="locked")),
                (
                    "plugin",
                    models.ForeignKey(
                        related_name="revision_set",
                        to="wiki.RevisionPlugin",
                        on_delete=models.CASCADE,
                    ),
                ),
                (
                    "previous_revision",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        blank=True,
                        to="wiki.RevisionPluginRevision",
                    ),
                ),
                (
                    "user",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        blank=True,
                        to=settings.AUTH_USER_MODEL,
                        verbose_name="user",
                    ),
                ),
            ],
            options={
                "get_latest_by": "revision_number",
                "ordering": ("-created", ),
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name="SimplePlugin",
            fields=[
                (
                    "articleplugin_ptr",
                    models.OneToOneField(
                        primary_key=True,
                        parent_link=True,
                        to="wiki.ArticlePlugin",
                        serialize=False,
                        auto_created=True,
                        on_delete=models.CASCADE,
                    ),
                ),
                (
                    "article_revision",
                    models.ForeignKey(to="wiki.ArticleRevision",
                                      on_delete=models.CASCADE),
                ),
            ],
            options={},
            bases=("wiki.articleplugin", ),
        ),
        migrations.CreateModel(
            name="URLPath",
            fields=[
                (
                    "id",
                    models.AutoField(
                        serialize=False,
                        primary_key=True,
                        auto_created=True,
                        verbose_name="ID",
                    ),
                ),
                ("slug",
                 models.SlugField(null=True, blank=True, verbose_name="slug")),
                ("lft",
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ("rght",
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ("tree_id",
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ("level",
                 models.PositiveIntegerField(db_index=True, editable=False)),
                (
                    "article",
                    models.ForeignKey(
                        help_text=
                        "This field is automatically updated, but you need to populate it when creating a new URL path.",
                        on_delete=django.db.models.deletion.CASCADE,
                        to="wiki.Article",
                        verbose_name="article",
                    ),
                ),
                (
                    "parent",
                    mptt.fields.TreeForeignKey(
                        blank=True,
                        help_text="Position of URL path in the tree.",
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="children",
                        to="wiki.URLPath",
                    ),
                ),
                (
                    "site",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="sites.Site"),
                ),
            ],
            options={
                "verbose_name_plural": "URL paths",
                "verbose_name": "URL path",
            },
            bases=(models.Model, ),
        ),
        migrations.AlterUniqueTogether(
            name="urlpath",
            unique_together=set([("site", "parent", "slug")]),
        ),
        migrations.AddField(
            model_name="revisionplugin",
            name="current_revision",
            field=models.OneToOneField(
                related_name="plugin_set",
                null=True,
                help_text=
                "The revision being displayed for this plugin. If you need to do a roll-back, simply change the value of this field.",
                blank=True,
                to="wiki.RevisionPluginRevision",
                verbose_name="current revision",
                on_delete=models.CASCADE,
            ),
            preserve_default=True,
        ),
        migrations.AlterUniqueTogether(
            name="articlerevision",
            unique_together=set([("article", "revision_number")]),
        ),
        migrations.AddField(
            model_name="articleplugin",
            name="article",
            field=models.ForeignKey(to="wiki.Article",
                                    verbose_name="article",
                                    on_delete=models.CASCADE),
            preserve_default=True,
        ),
        migrations.AlterUniqueTogether(
            name="articleforobject",
            unique_together=set([("content_type", "object_id")]),
        ),
        migrations.AddField(
            model_name="article",
            name="current_revision",
            field=models.OneToOneField(
                related_name="current_set",
                null=True,
                help_text=
                "The revision being displayed for this article. If you need to do a roll-back, simply change the value of this field.",
                blank=True,
                to="wiki.ArticleRevision",
                verbose_name="current revision",
                on_delete=models.CASCADE,
            ),
            preserve_default=True,
        ),
        migrations.AddField(
            model_name="article",
            name="group",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                help_text=
                "Like in a UNIX file system, permissions can be given to a user according to group membership. Groups are handled through the Django auth system.",
                blank=True,
                to=GROUP_MODEL,
                verbose_name="group",
            ),
            preserve_default=True,
        ),
        migrations.AddField(
            model_name="article",
            name="owner",
            field=models.ForeignKey(
                related_name="owned_articles",
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                help_text=
                "The owner of the article, usually the creator. The owner always has both read and write access.",
                blank=True,
                to=settings.AUTH_USER_MODEL,
                verbose_name="owner",
            ),
            preserve_default=True,
        ),
    ]
コード例 #12
0
class Migration(migrations.Migration):

    dependencies = [
        ("wiki", "0001_initial"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name="Attachment",
            fields=[
                (
                    "reusableplugin_ptr",
                    models.OneToOneField(
                        parent_link=True,
                        serialize=False,
                        primary_key=True,
                        to="wiki.ReusablePlugin",
                        auto_created=True,
                        on_delete=models.CASCADE,
                    ),
                ),
                (
                    "original_filename",
                    models.CharField(
                        max_length=256,
                        verbose_name="original filename",
                        blank=True,
                        null=True,
                    ),
                ),
            ],
            options={
                "verbose_name": "attachment",
                "verbose_name_plural": "attachments",
            },
            bases=("wiki.reusableplugin", ),
        ),
        migrations.CreateModel(
            name="AttachmentRevision",
            fields=[
                (
                    "id",
                    models.AutoField(
                        serialize=False,
                        primary_key=True,
                        verbose_name="ID",
                        auto_created=True,
                    ),
                ),
                (
                    "revision_number",
                    models.IntegerField(verbose_name="revision number",
                                        editable=False),
                ),
                ("user_message", models.TextField(blank=True)),
                ("automatic_log", models.TextField(editable=False,
                                                   blank=True)),
                (
                    "ip_address",
                    IPAddressField(editable=False,
                                   verbose_name="IP address",
                                   blank=True,
                                   null=True),
                ),
                ("modified", models.DateTimeField(auto_now=True)),
                ("created", models.DateTimeField(auto_now_add=True)),
                ("deleted",
                 models.BooleanField(default=False, verbose_name="deleted")),
                ("locked",
                 models.BooleanField(default=False, verbose_name="locked")),
                (
                    "file",
                    models.FileField(
                        max_length=255,
                        verbose_name="file",
                        upload_to=wiki.plugins.attachments.models.upload_path,
                    ),
                ),
                ("description", models.TextField(blank=True)),
                (
                    "attachment",
                    models.ForeignKey(to="wiki_attachments.Attachment",
                                      on_delete=models.CASCADE),
                ),
                (
                    "previous_revision",
                    models.ForeignKey(
                        blank=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="wiki_attachments.AttachmentRevision",
                        null=True,
                    ),
                ),
                (
                    "user",
                    models.ForeignKey(
                        blank=True,
                        verbose_name="user",
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                        null=True,
                    ),
                ),
            ],
            options={
                "ordering": ("created", ),
                "get_latest_by": "revision_number",
                "verbose_name": "attachment revision",
                "verbose_name_plural": "attachment revisions",
            },
            bases=(models.Model, ),
        ),
        migrations.AddField(
            model_name="attachment",
            name="current_revision",
            field=models.OneToOneField(
                to="wiki_attachments.AttachmentRevision",
                blank=True,
                verbose_name="current revision",
                related_name="current_set",
                help_text=
                "The revision of this attachment currently in use (on all articles using the attachment)",
                null=True,
                on_delete=models.CASCADE,
            ),
            preserve_default=True,
        ),
    ]
コード例 #13
0
ファイル: 0001_initial.py プロジェクト: nert-nlp/Xposition
class Migration(migrations.Migration):

    dependencies = [
        ('wiki', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Attachment',
            fields=[
                ('reusableplugin_ptr',
                 models.OneToOneField(parent_link=True,
                                      serialize=False,
                                      primary_key=True,
                                      to='wiki.ReusablePlugin',
                                      auto_created=True,
                                      on_delete=models.CASCADE)),
                ('original_filename',
                 models.CharField(max_length=256,
                                  verbose_name='original filename',
                                  blank=True,
                                  null=True)),
            ],
            options={
                'verbose_name': 'attachment',
                'verbose_name_plural': 'attachments',
            },
            bases=('wiki.reusableplugin', ),
        ),
        migrations.CreateModel(
            name='AttachmentRevision',
            fields=[
                ('id',
                 models.AutoField(serialize=False,
                                  primary_key=True,
                                  verbose_name='ID',
                                  auto_created=True)),
                ('revision_number',
                 models.IntegerField(verbose_name='revision number',
                                     editable=False)),
                ('user_message', models.TextField(blank=True)),
                ('automatic_log', models.TextField(editable=False,
                                                   blank=True)),
                ('ip_address',
                 IPAddressField(editable=False,
                                verbose_name='IP address',
                                blank=True,
                                null=True)),
                ('modified', models.DateTimeField(auto_now=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('deleted',
                 models.BooleanField(default=False, verbose_name='deleted')),
                ('locked',
                 models.BooleanField(default=False, verbose_name='locked')),
                ('file',
                 models.FileField(
                     max_length=255,
                     verbose_name='file',
                     upload_to=wiki.plugins.attachments.models.upload_path)),
                ('description', models.TextField(blank=True)),
                ('attachment',
                 models.ForeignKey(to='wiki_attachments.Attachment',
                                   on_delete=models.CASCADE)),
                ('previous_revision',
                 models.ForeignKey(
                     blank=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to='wiki_attachments.AttachmentRevision',
                     null=True)),
                ('user',
                 models.ForeignKey(
                     blank=True,
                     verbose_name='user',
                     on_delete=django.db.models.deletion.SET_NULL,
                     to=settings.AUTH_USER_MODEL,
                     null=True)),
            ],
            options={
                'ordering': ('created', ),
                'get_latest_by': 'revision_number',
                'verbose_name': 'attachment revision',
                'verbose_name_plural': 'attachment revisions',
            },
            bases=(models.Model, ),
        ),
        migrations.AddField(
            model_name='attachment',
            name='current_revision',
            field=models.OneToOneField(
                to='wiki_attachments.AttachmentRevision',
                blank=True,
                verbose_name='current revision',
                related_name='current_set',
                help_text=
                'The revision of this attachment currently in use (on all articles using the attachment)',
                null=True,
                on_delete=models.CASCADE),
            preserve_default=True,
        ),
    ]
コード例 #14
0
 def test_IPAddressField(self):
     self.assertIsInstance(IPAddressField().get_prep_value('127.0.0.1'), unicode)
     self.assertIsInstance(IPAddressField().get_prep_value(0), unicode)