Example #1
0
def forward(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    WordSet = apps.get_model('content', 'WordSet')
    manager.model = WordSet
    mptt.register(WordSet, order_insertion_by=['name'])
    manager.contribute_to_class(WordSet, 'objects')
    manager.rebuild()
def rebuild_mptt(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    InventoryItem = apps.get_model('dcim', 'InventoryItem')
    manager.model = InventoryItem
    mptt.register(InventoryItem)
    manager.contribute_to_class(InventoryItem, 'objects')
    manager.rebuild()
def render_organization_missions(apps, schema_editor):
    Organization = apps.get_model("facts", "Organization")
    mptt.register(Organization)
    db_alias = schema_editor.connection.alias
    for obj in Organization.objects.using(db_alias).exclude(mission=''):
        obj.mission_rendered = render_markdown(obj.mission)
        obj.save()
Example #4
0
def rebuild_flag_mptt_tree(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    Flag = apps.get_model('shopit', 'Flag')
    manager.model = Flag
    mptt.register(Flag, order_insertion_by=['created_at'])
    manager.contribute_to_class(Flag, 'objects')
    manager.rebuild()
def rebuild_step_mptt(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    ProcessStep = apps.get_model("WorkflowEngine", "ProcessStep")
    manager.model = ProcessStep
    mptt.register(ProcessStep, parent_attr='parent_step')
    manager.contribute_to_class(ProcessStep, 'objects')
    manager.rebuild()
Example #6
0
def rebuild_pages(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    page_model = apps.get_model("shoop_simple_cms", "Page")
    manager.model = page_model
    mptt.register(page_model, order_insertion_by=["-available_from"])
    manager.contribute_to_class(page_model, 'objects')
    manager.rebuild()
Example #7
0
 def rebuild_area_tree(apps, schema_editor):
     manager = mptt.managers.TreeManager()
     Area = apps.get_model("NEMO", "Area")
     manager.model = Area
     mptt.register(Area, parent_attr='parent_area')
     manager.contribute_to_class(Area, 'objects')
     manager.rebuild()
Example #8
0
def rebuild_pages(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    page_model = apps.get_model("shoop_simple_cms", "Page")
    manager.model = page_model
    mptt.register(page_model, order_insertion_by=["-available_from"])
    manager.contribute_to_class(page_model, 'objects')
    manager.rebuild()
def rebuild_tm_mptt(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    Teammate = apps.get_model("people", "Teammate")
    manager.model = Teammate
    mptt.register(Teammate, order_insertion_by=["name"], parent_attr="manager")
    manager.contribute_to_class(Teammate, "objects")
    manager.rebuild()
def rebuild_tree(apps, schema_editor):
    Service = apps.get_model('metadata', 'Service')
    manager = mptt.managers.TreeManager()
    manager.model = Service
    mptt.register(Service, order_insertion_by=['segment'])
    manager.contribute_to_class(Service, 'objects')
    manager.rebuild()
def rebuild_province_mptt(apps, schema_editor):
    manager = mptt.managers.TreeManager()
    Province = apps.get_model("promrep", "Province")
    manager.model = Province
    mptt.register(Province, order_insertion_by=['name'])
    manager.contribute_to_class(Province, 'objects')
    manager.rebuild()
Example #12
0
def forward(apps, schema_editor):
    # the zero mptt fields won't do, we need a treemanager to build the mptt tree
    manager = mptt.managers.TreeManager()
    Organization = apps.get_model("events", "Organization")
    manager.model = Organization
    mptt.register(Organization)
    manager.contribute_to_class(Organization, 'objects')
    manager.rebuild()
def rebuild_trees(apps, schema_editor):
    for tree in ['Location', 'ItemType']:
        manager = mptt.managers.TreeManager()
        Object = apps.get_model('inventory', tree)
        manager.model = Object
        mptt.register(Object, order_insertion_by=['display_order', 'id'])
        manager.contribute_to_class(Object, 'objects')
        manager.rebuild()
def rebuild_trees(apps, schema_editor):
    for tree in ['Location', 'ItemType']:
        manager = mptt.managers.TreeManager()
        Object = apps.get_model('inventory', tree)
        manager.model = Object
        mptt.register(Object, order_insertion_by=['display_order', 'id'])
        manager.contribute_to_class(Object, 'objects')
        manager.rebuild()
Example #15
0
def rebuild_tree(apps, schema_editor):
    Category = apps.get_model("booking", "Category")

    manager = managers.TreeManager()
    manager.model = Category
    register(Category)
    manager.contribute_to_class(Category, "objects")
    with transaction.atomic():
        manager.rebuild()
Example #16
0
def rebuild_tree(apps, schema_editor):
    Project = apps.get_model('projects', 'Project')

    manager = managers.TreeManager()
    manager.model = Project

    register(Project)

    manager.contribute_to_class(Project, 'objects')
    manager.rebuild()
Example #17
0
    def forwards(self, orm):
        # Note: Don't use "from appname.models import ModelName".
        # Use orm.ModelName to refer to models in this application,
        # and orm['appname.ModelName'] for models in other applications.

        # Take PartList and "extend" it with mtpp stuff
        # http://django-mptt.github.io/django-mptt/models.html#registration-of-existing-models
        mptt.register(orm.PartList)

        for email in orm.Email.objects.all():
            self.flag_setter(email)

            try:
                if email.body is not None:
                    body = email.body.encode("utf8")
                else:
                    body = ""
            except UnicodeError:
                body = email.body

            body = self.make_body(orm, data=body)
            first_part = orm.PartList(email=email, body=body, parent=None)
            first_part.save()

            ordinal = 0
            for header in email.headers.all():
                self.make_header(orm, name=header.name, data=header.data, part=first_part, ordinal=ordinal)
                ordinal = ordinal + 1

            old_attachments = email.attachments.all()

            if len(old_attachments) > 0:
                self.make_header(orm, name="Content-Type", data="multipart/mixed", part=first_part, ordinal=ordinal)

                for attachment in old_attachments:
                    try:
                        if attachment._data is not None:
                            data = attachment._data.encode("utf8")
                        else:
                            data = ""
                    except UnicodeError:
                        data = attachment._data

                    try:
                        data = base64.decodestring(data)
                    except binascii.Error:
                        pass

                    body = self.make_body(orm, data=data, path=attachment.path)
                    part = orm.PartList(email=email, body=body, parent=first_part)
                    part.save()

                    self.make_header(orm, name="Content-Type", data=attachment.content_type, part=part, ordinal=0)
                    self.make_header(orm, name="Content-Disposition", data=attachment.content_disposition, part=part, ordinal=1)
Example #18
0
def rebuild_mptt_model(model):
    """
    Rebuild an mptt model.

    This is used in migrations that work with data from mptt models.
    """
    manager = mptt.managers.TreeManager()
    manager.model = model
    mptt.register(model)
    manager.contribute_to_class(model, "objects")
    manager.rebuild()
def copy_preambles(apps, schema_editor):
    Preamble = apps.get_model('regcore', 'Preamble')
    Document = apps.get_model('regcore', 'Document')

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Document
    mptt.register(Document)
    manager.contribute_to_class(Document, 'objects')

    for pre in Preamble.objects.all():
        write_node(Document, pre.data, 'preamble', pre.data['label'])
def copy_preambles(apps, schema_editor):
    Preamble = apps.get_model('regcore', 'Preamble')
    Document = apps.get_model('regcore', 'Document')

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Document
    mptt.register(Document)
    manager.contribute_to_class(Document, 'objects')

    for pre in Preamble.objects.all():
        write_node(Document, pre.data, 'preamble', pre.data['label'])
def uncopy_preambles(apps, schema_editor):
    Preamble = apps.get_model('regcore', 'Preamble')
    Document = apps.get_model('regcore', 'Document')

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Document
    mptt.register(Document)
    manager.contribute_to_class(Document, 'objects')

    for doc in Document.objects.filter(doc_type='preamble', root=True):
        nodes = doc.get_descendants(include_self=True)
        data = serialize(nodes[0], build_adjacency_map(nodes))
        pre = Preamble(document_number=doc.label_string, data=data)
        pre.save()
def uncopy_preambles(apps, schema_editor):
    Preamble = apps.get_model('regcore', 'Preamble')
    Document = apps.get_model('regcore', 'Document')

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Document
    mptt.register(Document)
    manager.contribute_to_class(Document, 'objects')

    for doc in Document.objects.filter(doc_type='preamble', root=True):
        nodes = doc.get_descendants(include_self=True)
        data = serialize(nodes[0], build_adjacency_map(nodes))
        pre = Preamble(document_number=doc.label_string, data=data)
        pre.save()
Example #23
0
def copy_preambles(apps, schema_editor):
    Preamble = apps.get_model('regcore', 'Preamble')
    Document = apps.get_model('regcore', 'Document')

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Document
    # Convert to tuple to resolve django-mptt migration
    # errors: https://github.com/django-mptt/django-mptt/issues/803
    Document._meta.index_together = convert_to_tuple(
        Document._meta.index_together)
    mptt.register(Document)
    manager.contribute_to_class(Document, 'objects')

    for pre in Preamble.objects.all():
        write_node(Document, pre.data, 'preamble', pre.data['label'])
Example #24
0
def uncopy_preambles(apps, schema_editor):
    Preamble = apps.get_model('regcore', 'Preamble')
    Document = apps.get_model('regcore', 'Document')

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Document
    # Convert to tuple to resolve django-mptt migration
    # errors: https://github.com/django-mptt/django-mptt/issues/803
    Document._meta.index_together = convert_to_tuple(
        Document._meta.index_together)
    mptt.register(Document)
    manager.contribute_to_class(Document, 'objects')

    for doc in Document.objects.filter(doc_type='preamble', root=True):
        nodes = doc.get_descendants(include_self=True)
        data = serialize(nodes[0], build_adjacency_map(nodes))
        pre = Preamble(document_number=doc.label_string, data=data)
        pre.save()
def rebuild(apps, schema_editor):
    Regulation = apps.get_model('regcore', 'Regulation')
    Regulation.objects.filter(root=False).delete()

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Regulation
    mptt.register(Regulation)
    manager.contribute_to_class(Regulation, 'objects')

    for root in Regulation.objects.all():
        serialized = {
            'text': root.text,
            'title': root.title,
            'label': root.label_string.split('-'),
            'node_type': root.node_type,
            'children': root.children,
        }
        root.delete()
        write_node(Regulation, serialized, root.version, root.label_string)
def rebuild(apps, schema_editor):
    Regulation = apps.get_model('regcore', 'Regulation')
    Regulation.objects.filter(root=False).delete()

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Regulation
    mptt.register(Regulation)
    manager.contribute_to_class(Regulation, 'objects')

    for root in Regulation.objects.all():
        serialized = {
            'text': root.text,
            'title': root.title,
            'label': root.label_string.split('-'),
            'node_type': root.node_type,
            'children': root.children,
        }
        root.delete()
        write_node(Regulation, serialized, root.version, root.label_string)
def rebuild(apps, schema_editor):
    Regulation = apps.get_model('regcore', 'Regulation')
    Regulation.objects.filter(root=False).delete()

    # Bind manager
    manager = mptt.managers.TreeManager()
    manager.model = Regulation
    # Convert to tuple to resolve django-mptt migration
    # errors: https://github.com/django-mptt/django-mptt/issues/803
    Regulation._meta.index_together = convert_to_tuple(
        Regulation._meta.index_together)
    mptt.register(Regulation)
    manager.contribute_to_class(Regulation, 'objects')

    for root in Regulation.objects.all():
        serialized = {
            'text': root.text,
            'title': root.title,
            'label': root.label_string.split('-'),
            'node_type': root.node_type,
            'children': root.children,
        }
        root.delete()
        write_node(Regulation, serialized, root.version, root.label_string)
Example #28
0
    class Meta:
        unique_together = ('column', 'row')


class Clade(models.Model):
    alignment = models.ForeignKey(Alignment, related_name='clades', db_index=True)
    num = models.IntegerField(editable=False)
    cumulative_branch_length = models.FloatField(default=0.0, editable=False)
    local_branch_length = models.FloatField(editable=False)
    row = models.OneToOneField(Row, null=True)               # leaf nodes only
    parent = models.ForeignKey('self', null=True, related_name='children')


# use django-mptt to manage tree structure of Clades. Possibly this should be in __init__.py?
try:
    mptt.register(Clade, order_insertion_by=["num"])
except mptt.AlreadyRegistered:
    pass


class ThresholdGrouping(models.Model):

    alignment = models.ForeignKey(Alignment, related_name='threshold_groupings')
    root_clades = models.ManyToManyField(Clade, related_name='threshold_groupings')
    threshold = models.FloatField()


class RowGroup(models.Model):
    
    # issue. Would like to have a 'Group' table against which to score relatedness. 
    # ThresholdGroupings are currently
Example #29
0
    
    def get_root_menu(self):
        return self.parent

    def get_children(self):
        return CMSMenu.objects.get_children(self)

    name = property(get_name)
    status = property(get_page_status)

    def get_controller(self):
        if hasattr(self.content_object, 'get_controller'):
            return self.content_object.get_controller()
        return None
    
mptt.register(CMSMenu, order_insertion_by=['object_id'])


class MenuLocalLink(models.Model):
    """ MenuLocalLink is to link static page dynamicaly into the menu """
    name = models.CharField(max_length=100, unique=False, help_text=_('Max 100 characters.'))
    local_link = models.CharField(max_length=200, null=True, blank=True,
                                  help_text="Link on this web site. ex. /www/page/")
    
    class Meta:
        app_label = "www"
        verbose_name = 'Menu - Local Link'
        verbose_name_plural = 'Menu - Local Link'
    
    def __unicode__(self):
        return self.name
Example #30
0
from mptt.models import MPTTModel, TreeForeignKey
import mptt


class Genre(MPTTModel):
    name = models.CharField(max_length=50)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)
    user = models.ForeignKey(User)

    class MPTTMeta:
        level_attr = 'mptt_level'
        order_insertion_by = ['name']

    def __str__(self):
        return self.name
mptt.register(Genre, order_insertion_by=['name'])


class Icon(models.Model):
    icon_name = models.CharField(max_length=50)

    def __str__(self):
        return self.icon_name


class Note(models.Model):
    note_name = models.CharField(max_length=50)
    note_text = models.TextField()
    icon_name = models.ManyToManyField(Icon)
    user = models.ForeignKey(User)
    parent = models.ForeignKey(Genre)
Example #31
0
class SubsidiaryCompany(MPTTModel):
    name = models.CharField(u"Subsidiary company", max_length=30, default='')
    annual_earning = models.PositiveIntegerField(u"Annual earning",
                                                 blank=True,
                                                 null=True,
                                                 default=0)
    main_company = models.ForeignKey(MainCompany,
                                     blank=True,
                                     null=True,
                                     related_name=u"child_from_main",
                                     default='')
    parent = TreeForeignKey('self',
                            related_name=u"child_from_sub",
                            blank=True,
                            null=True,
                            default='')

    class Meta:
        verbose_name = u"SubsidiaryCompany"
        ordering = ('tree_id', 'level')

    def __unicode__(self):
        return '{}'.format(self.name)

    class MPTTMeta:
        order_insertion_py = ['name']


mptt.register(SubsidiaryCompany, order_insertion_py=['name'])
Example #32
0
class MultiOrder(models.Model):
    name = models.CharField(max_length=50)
    size = models.PositiveIntegerField()
    date = models.DateField()
    parent = models.ForeignKey('self', null=True, blank=True, related_name='children')

    def __unicode__(self):
        return self.name

class Node(models.Model):
    parent = models.ForeignKey('self', null=True, blank=True, related_name='children')

class OrderedInsertion(models.Model):
    name = models.CharField(max_length=50)
    parent = models.ForeignKey('self', null=True, blank=True, related_name='children')

    def __unicode__(self):
        return self.name

class Tree(models.Model):
    parent = models.ForeignKey('self', null=True, blank=True, related_name='children')

mptt.register(Category)
mptt.register(Genre)
mptt.register(Insert)
mptt.register(MultiOrder, order_insertion_by=['name', 'size', 'date'])
mptt.register(Node, left_attr='does', right_attr='zis', level_attr='madness',
              tree_id_attr='work')
mptt.register(OrderedInsertion, order_insertion_by=['name'])
mptt.register(Tree)
Example #33
0
        return self.get_caption_formatted(escape=False)
    get_caption_formatted_unescaped.allow_tags = True
    get_caption_formatted_unescaped.short_description = _('displayed metadata')

    @property
    def alt(self):
        """Returns object metadata suitable for use as the HTML ``alt``
        attribute. You can use this method in templates::

            <img src="{{ node.file.url }}" alt="{{ node.alt }}" />

        """
        if self.override_alt != '' and self.override_alt is not None:
            return self.override_alt
        elif self.override_caption != '' and self.override_caption is not None:
            return self.override_caption
        else:
            return self.get_metadata_display()

# Legacy mptt support
if ModelBase == models.Model:
    FileNode._mptt_meta = FileNode._meta
    try:
        mptt.register(FileNode,
            order_insertion_by=FileNode.MPTTMeta.order_insertion_by)
    except mptt.AlreadyRegistered:
        pass

from media_tree.utils import autodiscover_media_extensions
autodiscover_media_extensions()
Example #34
0
    try:
        _class = getattr(import_module(module_name), class_name)
        return _class
    except (ImportError, AttributeError):
        warnings.warn('%s cannot be imported' % ENTRY_BASE_MODEL,
                      RuntimeWarning)
    return EntryAbstractClass


class Entry(get_base_model()):
    """Final Entry model"""
    class Meta:
        """Entry's Meta"""
        ordering = ['-creation_date']
        verbose_name = _('entry')
        verbose_name_plural = _('entries')
        permissions = (
            ('can_view_all', 'Can view all'),
            ('can_change_author', 'Can change author'),
        )


moderator.register(Entry, EntryCommentModerator)
mptt.register(Category, order_insertion_by=['title'])
post_save.connect(ping_directories_handler,
                  sender=Entry,
                  dispatch_uid='zinnia.entry.post_save.ping_directories')
post_save.connect(ping_external_urls_handler,
                  sender=Entry,
                  dispatch_uid='zinnia.entry.post_save.ping_external_urls')
Example #35
0
def rebuild_site_tree(apps, schema_editor):
    manager = managers.TreeManager()
    manager.model = apps.get_model('outdoor', 'Site')
    register(manager.model)
    manager.contribute_to_class(manager.model, 'objects')
    manager.rebuild()
Example #36
0
def _add_mptt_manager(cls):
    manager = mptt.managers.TreeManager()
    manager.model = cls
    mptt.register(cls, parent_attr='super_event')
    manager.contribute_to_class(cls, 'objects')
Example #37
0
class NsSortedNode(NS_Node):
    node_order_by = ['numval', 'strval']

    numval = models.IntegerField()
    strval = models.CharField(max_length=255)


if mptt:
    class MpttNode(models.Model):
        numval = models.IntegerField()
        strval = models.CharField(max_length=255)
        parent = models.ForeignKey('self',
                                   null=True,
                                   blank=True,
                                   related_name='children')
    mptt.register(MpttNode)

    class MpttSortedNode(models.Model):
        numval = models.IntegerField()
        strval = models.CharField(max_length=255)
        parent = models.ForeignKey('self',
                                   null=True,
                                   blank=True,
                                   related_name='children')
    mptt.register(MpttSortedNode, order_insertion_by=['numval', 'strval'])

else:
    MpttNode, MpttSortedNode = None, None

Example #38
0
            return True
        except Folder.DoesNotExist:
            return False

    class Meta:
        unique_together = (('parent', 'name'),)
        ordering = ('name',)
        permissions = (("can_use_directory_listing",
                        "Can use directory listing"),)
        app_label = 'filer'
        verbose_name = _("Folder")
        verbose_name_plural = _("Folders")

# MPTT registration
try:
    mptt.register(Folder)
except mptt.AlreadyRegistered:
    pass


@python_2_unicode_compatible
class FolderPermission(models.Model):
    ALL = 0
    THIS = 1
    CHILDREN = 2

    ALLOW = 1
    DENY = 0

    TYPES = (
        (ALL, _('all items')),
Example #39
0
from django.db import models
from django.core.urlresolvers import reverse
import mptt

class Category(models.Model):
    parent = models.ForeignKey('self', blank=True, null=True)
    name = models.CharField(max_length=20)
    
    def __unicode__(self):
        return self.name
    
    def get_absolute_url(self):
        return reverse('category_view', args=[self.pk])
    
    class Meta:
        verbose_name_plural = 'categories'
    
try:
    mptt.register(Category)
except mptt.AlreadyRegistered:
    pass

class Picture(models.Model):
    image = models.ImageField(upload_to="pictures")
    category = models.ForeignKey(Category)
Example #40
0
    def margin_level(self):
        """Used in the admin menu to create the left margin."""
        return self.level * 2

    def __unicode__(self):
        """Representation of the page, saved or not."""
        if self.id:
            slug = self.slug()
            if slug:
                return slug
            return "Page %d" % self.id
        return "Page without id"

# Don't register the Page model twice.
try:
    mptt.register(Page)
except mptt.AlreadyRegistered:
    pass


class Content(models.Model):
    """A block of content, tied to a :class:`Page <pages.models.Page>`,
    for a particular language"""
    
    # languages could have five characters : Brazilian Portuguese is pt-br
    language = models.CharField(_('language'), max_length=5, blank=False)
    body = models.TextField(_('body'))
    type = models.CharField(_('type'), max_length=100, blank=False,
        db_index=True)
    page = models.ForeignKey(Page, verbose_name=_('page'))
Example #41
0
        on_delete=models.CASCADE)
    now = models.DateTimeField(auto_now_add=True)

    class MPTTMeta:
        order_insertion_by = ('now',)


# test registering of remote model
class Group(models.Model):
    name = models.CharField(max_length=100)


TreeForeignKey(
    Group, blank=True, null=True, on_delete=models.CASCADE
).contribute_to_class(Group, 'parent')
mptt.register(Group, order_insertion_by=('name',))


class Book(MPTTModel):
    parent = TreeForeignKey(
        'self', null=True, blank=True, related_name='children',
        on_delete=models.CASCADE)

    name = models.CharField(max_length=50)
    fk = TreeForeignKey(
        Category, null=True, blank=True, related_name='books_fk',
        on_delete=models.CASCADE)
    m2m = TreeManyToManyField(Category, blank=True, related_name='books_m2m')


class UniqueTogetherModel(MPTTModel):
Example #42
0
    # Hierarchy
    parent = models.ForeignKey('self', null=True, blank=True,
                               related_name='children')

    def __unicode__(self):
        return u"%s" % (self.title)

    @models.permalink
    def get_absolute_url(self):
        return ('price_shop_category', (self.slug,))

    class Meta:
        ordering = ["title"]

mptt.register(ShopCategory, order_insertion_by=['title'])


class ShopNet(models.Model):

    # Named
    title = models.CharField(max_length=50)
    slug = models.SlugField(unique=True, max_length=50)

    # Content
    description = models.TextField(blank=True)

    # Orderable
    position = models.PositiveIntegerField(default=0)

    def __unicode__(self):
Example #43
0
                # no such parent? better create it
                parent = ExternalSite(domain = parent_domain, site = parent_domain)
                
                # check that it will have a domain attribute
                if parent.domain:
                    # save it, then assign a FK to it
                    parent.save()
                    self.parent = parent
            super(ExternalSite, self).save()
        else:
            # we won't create a nameless domain!
            pass


try:
    mptt.register(ExternalSite)
except mptt.AlreadyRegistered:
    pass


class GenericLinkListPlugin(CMSPlugin):
    INSERTION_MODES = (
        (0, u"Inline in text"),
        (1, u"Unordered List - <ul>"),
        (2, u"Paragraphs - <p>"),
        )
    insert_as = models.PositiveSmallIntegerField(choices = INSERTION_MODES, default = 1)
    use_link_icons = models.BooleanField(help_text = "Place an icon on each link below (links in lists only)")
    separator = models.CharField(help_text = "Applies to Inline links only; default is ', '", max_length=20, null = True, blank = True, default = ", ")
    final_separator = models.CharField(help_text = "Applies to Inline links only; default is ' and '", max_length=20, null = True, blank = True, default = " and ")
Example #44
0
    def forwards(self, orm):
        # Note: Don't use "from appname.models import ModelName".
        # Use orm.ModelName to refer to models in this application,
        # and orm['appname.ModelName'] for models in other applications.

        # Take PartList and "extend" it with mtpp stuff
        # http://django-mptt.github.io/django-mptt/models.html#registration-of-existing-models
        mptt.register(orm.PartList)

        for email in orm.Email.objects.all():
            self.flag_setter(email)

            try:
                if email.body is not None:
                    body = email.body.encode("utf8")
                else:
                    body = ""
            except UnicodeError:
                body = email.body

            body = self.make_body(orm, data=body)
            first_part = orm.PartList(email=email, body=body, parent=None)
            first_part.save()

            ordinal = 0
            for header in email.headers.all():
                self.make_header(orm,
                                 name=header.name,
                                 data=header.data,
                                 part=first_part,
                                 ordinal=ordinal)
                ordinal = ordinal + 1

            old_attachments = email.attachments.all()

            if len(old_attachments) > 0:
                self.make_header(orm,
                                 name="Content-Type",
                                 data="multipart/mixed",
                                 part=first_part,
                                 ordinal=ordinal)

                for attachment in old_attachments:
                    try:
                        if attachment._data is not None:
                            data = attachment._data.encode("utf8")
                        else:
                            data = ""
                    except UnicodeError:
                        data = attachment._data

                    try:
                        data = base64.decodestring(data)
                    except binascii.Error:
                        pass

                    body = self.make_body(orm, data=data, path=attachment.path)
                    part = orm.PartList(email=email,
                                        body=body,
                                        parent=first_part)
                    part.save()

                    self.make_header(orm,
                                     name="Content-Type",
                                     data=attachment.content_type,
                                     part=part,
                                     ordinal=0)
                    self.make_header(orm,
                                     name="Content-Disposition",
                                     data=attachment.content_disposition,
                                     part=part,
                                     ordinal=1)
Example #45
0
           
            super(Page, self).save(force_insert, force_update)

        if self.url!=old_url:
            # Обновляем urlpatterns если поменялся путь
            interprocess.clear_key(IP_KEY_URLPATTERNS)
            
        # Обновляем menu    
        interprocess.clear_key(IP_KEY_MENU)
        
        super(Page, self).save(force_insert, force_update)
        
    def get_absolute_url(self):
        if self.url:
            return  '/%s/' % self.url
        else:
            return '/'

    class Meta():
        ordering = ['tree_id', 'lft']
        verbose_name = u'страницу'
        verbose_name_plural = u'страницы'
            
    def __unicode__(self):       
        return u'%s %s' % ('--'*self.level,self.name)

try:
    mptt.register(Page, order_insertion_by=['sort', 'name'] )
except mptt.AlreadyRegistered:
    pass
    
Example #46
0
    dot = ENTRY_BASE_MODEL.rindex('.')
    module_name = ENTRY_BASE_MODEL[:dot]
    class_name = ENTRY_BASE_MODEL[dot + 1:]
    try:
        _class = getattr(import_module(module_name), class_name)
        return _class
    except (ImportError, AttributeError):
        warnings.warn('%s cannot be imported' % ENTRY_BASE_MODEL,
                      RuntimeWarning)
    return EntryAbstractClass


class Entry(get_base_model()):
    """Final Entry model"""

    class Meta:
        """Entry's Meta"""
        ordering = ['-creation_date']
        verbose_name = _('entry')
        verbose_name_plural = _('entries')
        permissions = (('can_view_all', 'Can view all'),
                       ('can_change_author', 'Can change author'), )


moderator.register(Entry, EntryCommentModerator)
mptt.register(Category, order_insertion_by=['title'])
post_save.connect(ping_directories_handler, sender=Entry,
                  dispatch_uid='zinnia.entry.post_save.ping_directories')
post_save.connect(ping_external_urls_handler, sender=Entry,
                  dispatch_uid='zinnia.entry.post_save.ping_external_urls')
Example #47
0
        null=True, blank=True)
    display_descriptions_to_level = models.PositiveSmallIntegerField(default=0,
        help_text=u'Blank for all levels, 0 for none, 1 for first', null=True,
        blank=True)
    link_icons = models.BooleanField(help_text=u"Display link icons (first level only)",
        default=True)
    use_short_names = models.BooleanField(default=True)


class EntityMembersPluginEditor(CMSPlugin):
    entity = models.ForeignKey(Entity, null=True, blank=True, 
        help_text="Leave blank for autoselect", 
        related_name="entity_members_plugin", on_delete=models.SET_NULL)

try:
    mptt.register(Entity)
except mptt.AlreadyRegistered:
    pass

# contacts_and_people.models.default_entity and default_entity_id is a key value, and used throughout the system

# default_entity_id is used to autofill the default entity where required, when MULTIPLE_ENTITY_MODE = False
default_entity_id = default_entity = None
try:
    if not MULTIPLE_ENTITY_MODE and Entity.objects.all():
        # default_entity_id is used to fill in admin fields automatically when not in MULTIPLE_ENTITY_MODE
        default_entity_id = base_entity_id
    if base_entity_id:
        # set the default entity using the id
        default_entity = Entity.objects.get(id = base_entity_id)
except:
Example #48
0
        except Folder.DoesNotExist:
            return False

    class Meta:
        unique_together = (('parent', 'name'), )
        ordering = ('name', )
        permissions = (("can_use_directory_listing",
                        "Can use directory listing"), )
        app_label = 'filer'
        verbose_name = _("Folder")
        verbose_name_plural = _("Folders")


# MPTT registration
try:
    mptt.register(Folder)
except mptt.AlreadyRegistered:
    pass


class FolderPermission(models.Model):
    ALL = 0
    THIS = 1
    CHILDREN = 2

    ALLOW = 1
    DENY = 0

    TYPES = (
        (ALL, _('all items')),
        (THIS, _('this item only')),
Example #49
0
        exit = ""
        if self.parent:
            return "%s (%s)" % (blank_or_string(
                self.name), blank_or_string(self.parent.name))
        else:
            return blank_or_string(self.name)

    def show_ancestors_tree(self):
        exit = ", ".join([
            blank_or_string(el.name) for el in self.get_ancestors().reverse()
        ])
        if exit:
            exit = "%s (%s)" % (blank_or_string(self.name), exit)
        else:
            exit = blank_or_string(self.name)
        return exit

    class Meta:
        verbose_name_plural = "Religion"
        ordering = [
            'tree_id',
            'lft',
            'name',
        ]

    def __unicode__(self):
        return self.show_ancestors_tree()


mptt.register(Religion, )
Example #50
0
    def __unicode__(self):
        return '%s: %s' % (self.title, self.get_status_display())

    @models.permalink
    def get_absolute_url(self):
        """Return objecttype's URL"""
        return ('gstudio_objecttype_detail', (), {
            'year': self.creation_date.strftime('%Y'),
            'month': self.creation_date.strftime('%m'),
            'day': self.creation_date.strftime('%d'),
            'slug': self.slug})


    class Meta:
        """Objecttype's Meta"""
        ordering = ['-creation_date']
        verbose_name = _('object type')
        verbose_name_plural = _('object types')
        permissions = (('can_view_all', 'Can view all'),
                       ('can_change_author', 'Can change author'), )


moderator.register(Objecttype, ObjecttypeCommentModerator)
mptt.register(Metatype, order_insertion_by=['title'])
mptt.register(Objecttype, order_insertion_by=['title'])
post_save.connect(ping_directories_handler, sender=Objecttype,
                  dispatch_uid='gstudio.objecttype.post_save.ping_directories')
post_save.connect(ping_external_urls_handler, sender=Objecttype,
                  dispatch_uid='gstudio.objecttype.post_save.ping_external_urls')
Example #51
0
#coding: utf-8

from django.db import models
from mptt.fields import TreeForeignKey
import mptt
from apps.site_user.models import Staff


class Law(models.Model):
    staff = models.ManyToManyField(Staff, blank=True, null=True)
    fed = models.CharField(max_length=255, blank=True, null=True)


class Item(models.Model):
    parent = TreeForeignKey('self', blank=True, null=True)
    name = models.CharField(max_length=255)
    url = models.CharField(max_length=255)
    law = models.ForeignKey(Law, blank=True, null=True)

mptt.register(Item)


Example #52
0

# 4. proxy models

class SingleProxyModel(ConcreteModel):
    objects = CustomTreeManager()

    class Meta:
        proxy = True


class DoubleProxyModel(SingleProxyModel):
    class Meta:
        proxy = True


class AutoNowDateFieldModel(MPTTModel):
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
    now = models.DateTimeField(auto_now_add=True)

    class MPTTMeta:
        order_insertion_by = ('now',)


# test registering of remote model
class Group(models.Model):
    name = models.CharField(max_length=100)

TreeForeignKey(Group, blank=True, null=True).contribute_to_class(Group, 'parent')
mptt.register(Group, order_insertion_by=('name',))
Example #53
0
                conflicts[obj.name] = obj
            for child in children:
                if child.name in conflicts:
                    squash.append((child.id, conflicts[child.name].id))
                    examine.append((child, conflicts[child.name]))
                else:
                    to_move.append((child, merge_node))
        if squash:
            signals.pre_merge.send(sender=self, merge_pairs=squash)

        if to_move:
            signals.pre_move.send(sender=self, moving=to_move)
            for child, new_parent in to_move:
                # Need to refresh the instance, as previous moves might have
                # changed the "lft" and "rght" attributes.
                new_parent = manager.get(id=new_parent.id)
                child.move_to(new_parent)
        self.delete()


class Topic(AbstractTopic):
    """
    The basic concrete class for a topic node. API details are defined by the
    AbstractTopic base class.
    """

    pass


mptt.register(Topic, order_insertion_by=["name"])
Example #54
0
    def content_splitted(self):
        return self.content_highlighted.splitlines()

    def save(self, *args, **kwargs):
        if not self.pk:
            self.published = datetime.datetime.now()
            self.secret_id = generate_secret_id()
        self.content_highlighted = self.content
        super(Snippet, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('snippet_details', kwargs={'snippet_id': self.secret_id})

    def __unicode__(self):
        return '%s' % self.secret_id

mptt.register(Snippet, order_insertion_by=['content'])


class SpamwordManager(models.Manager):
    def get_regex(self):
        return re.compile(r'|'.join((i[1] for i in self.values_list())),
            re.MULTILINE)

class Spamword(models.Model):
    word = models.CharField(max_length=100)
    objects = SpamwordManager()

    def __unicode__(self):
        return self.word
Example #55
0
    event = kwargs['instance']    
    event.get_root().check_date()

post_save.connect(receiver_function, sender = Event)


class NewsAndEventsPlugin(CMSPlugin, UniversalPluginOptions):
    DISPLAY = (
        ("news & events", u"News and events"),
        ("news", u"News only"),
        ("events", u"Events only"),
        )
    display = models.CharField("Show", max_length=25,choices = DISPLAY, default = "news_and_events")
    entity = models.ForeignKey(Entity, null=True, blank=True, 
        help_text="Leave blank for autoselect", 
        related_name="news_events_plugin")
    show_previous_events = models.BooleanField()
    news_heading_text = models.CharField(max_length=25, default="News")
    events_heading_text = models.CharField(max_length=25, default="Events")
    
try:
    mptt.register(Event)
except mptt.AlreadyRegistered:
    pass    

''' 
entity: ('name',)
building: ('name', 'number', 'street', 'postcode', 'site__site_name',)
website: ('title_set__title',)
'''
Example #56
0
    parent = TreeForeignKey('self',
                            null=True,
                            blank=True,
                            related_name='child',
                            on_delete=models.CASCADE)

    def __str__(self):
        return self.name

    class MPTTMeta:
        order_insertion_by = ['name']
        ordering = ('tree_id', 'level')
        level_attr = 'mptt_level'


mptt.register(Region, order_insertion_by=['name'])
mptt.register(Category, order_insertion_by=['name'])


class File(models.Model):
    file = models.FileField(blank=False, null=False)
    remark = models.CharField(max_length=20)
    timestamp = models.DateTimeField(auto_now_add=True)


class Ad(models.Model):
    title = models.CharField(max_length=30,
                             help_text='Title ads',
                             db_column='data')
    date_create = models.DateTimeField(auto_now=True, help_text='Date Create')
    description = models.TextField(max_length=300)
Example #57
0
        self.save()

    def __unicode__(self):
        return self.content

    @property
    def clean_content(self):
        return truncate_words(html2text(self.content), 70)

    class Meta:
        app_label = 'periodics'
        verbose_name = _('Comment')
        verbose_name_plural = _('Comments')

if Comment not in mptt.registry:
    mptt.register(Comment, )


def comment_created_notification(sender, **kwargs):
    if kwargs['created']:
        send_email(
            to      = '*****@*****.**',
            tpl     = 'comment_posted',
            context = {'comment': kwargs['instance'], 'text': html2text(kwargs['instance'].content) },
        )

models.signals.post_save.connect(comment_created_notification, sender=Comment)



class Post(Publisher, PeriodicsBase, TaggedModel):