├── vestlus
├── migrations
│ ├── __init__.py
│ ├── 0003_channel_photo.py
│ ├── 0002_auto_20200701_0012.py
│ └── 0001_initial.py
├── viewsets
│ ├── mixin
│ │ ├── __init__.py
│ │ ├── detail_action.py
│ │ └── non_detail_action.py
│ ├── __init__.py
│ ├── permissions
│ │ ├── __init__.py
│ │ ├── is_owner.py
│ │ ├── is_sender.py
│ │ ├── is_admin.py
│ │ └── is_member.py
│ ├── router.py
│ ├── channel.py
│ ├── membership.py
│ └── message.py
├── fixtures
│ ├── __init__.py
│ └── vestlus-channels.json
├── templates
│ ├── __init__.py
│ ├── search
│ │ └── indexes
│ │ │ └── vestlus
│ │ │ ├── message_text.txt
│ │ │ ├── groupmessage_text.txt
│ │ │ ├── privatemessage_text.txt
│ │ │ ├── channel_text.txt
│ │ │ ├── channel_rendered.txt
│ │ │ └── message_rendered.txt
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── misc.xml
│ │ ├── vcs.xml
│ │ ├── modules.xml
│ │ ├── templates.iml
│ │ └── dbnavigator.xml
│ ├── membership_list.html
│ ├── channel_create.html
│ ├── membership_create.html
│ ├── message_create.html
│ ├── channel_delete.html
│ ├── message_delete.html
│ ├── vue-templates.html
│ ├── vestlus.html
│ ├── message_detail.html
│ ├── membership_detail.html
│ ├── message_list.html
│ ├── index.html
│ ├── channel_list.html
│ └── channel_detail.html
├── middleware
│ ├── __init__.py
│ └── helpers
│ │ └── __init__.py
├── forms
│ ├── helpers
│ │ └── __init__.py
│ ├── channel.py
│ ├── membership.py
│ ├── __init__.py
│ └── message.py
├── models
│ ├── validators
│ │ └── __init__.py
│ ├── tests
│ │ ├── __init__.py
│ │ └── message.py
│ ├── signals
│ │ ├── __init__.py
│ │ ├── create_membership.py
│ │ └── update_index.py
│ ├── __init__.py
│ ├── managers
│ │ ├── __init__.py
│ │ ├── reaction.py
│ │ ├── membership.py
│ │ ├── channel.py
│ │ └── message.py
│ ├── membership.py
│ ├── channel.py
│ └── message.py
├── admin
│ ├── permissions
│ │ └── __init__.py
│ ├── inlines
│ │ ├── channel.py
│ │ ├── membership.py
│ │ ├── __init__.py
│ │ └── message.py
│ ├── __init__.py
│ ├── membership.py
│ ├── actions
│ │ └── __init__.py
│ ├── channel.py
│ └── message.py
├── views
│ ├── mixins
│ │ ├── __init__.py
│ │ └── ajaxable_response.py
│ ├── routes.py
│ ├── channel_create.py
│ ├── __init__.py
│ ├── message_list.py
│ ├── channel_delete.py
│ ├── index.py
│ ├── membership_list.py
│ ├── channel_list.py
│ ├── membership_detail.py
│ ├── message_detail.py
│ ├── membership_create.py
│ ├── message_delete.py
│ ├── channel_detail.py
│ └── message_create.py
├── search_indexes
│ ├── __init__.py
│ ├── message.py
│ └── channel.py
├── serializers
│ ├── tests
│ │ ├── __init__.py
│ │ ├── group_message.py
│ │ ├── message.py
│ │ └── channel.py
│ ├── __init__.py
│ ├── mixins
│ │ ├── __init__.py
│ │ ├── chat.py
│ │ └── exclude.py
│ ├── membership.py
│ ├── channel.py
│ └── message.py
├── api.py
├── urls.py
├── apps.py
├── requires.py
├── settings.py
└── __init__.py
├── MANIFEST.in
├── .idea
├── vcs.xml
├── .gitignore
├── inspectionProfiles
│ ├── profiles_settings.xml
│ └── Project_Default.xml
├── modules.xml
├── misc.xml
├── PipelineViewerConfig.xml
└── vestlus.iml
├── setup.py
├── setup.cfg
├── .github
└── workflows
│ └── pythonpublish.yml
├── LICENSE.md
├── README.md
└── .gitignore
/vestlus/migrations/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vestlus/viewsets/mixin/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vestlus/fixtures/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:fixtures
2 |
--------------------------------------------------------------------------------
/vestlus/templates/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:templates
2 |
--------------------------------------------------------------------------------
/vestlus/middleware/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:middleware
2 |
--------------------------------------------------------------------------------
/vestlus/forms/helpers/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:forms:helpers
2 |
--------------------------------------------------------------------------------
/vestlus/models/validators/__init__.py:
--------------------------------------------------------------------------------
1 | # conversations:validators
2 |
--------------------------------------------------------------------------------
/vestlus/admin/permissions/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:admin:permissions
2 |
--------------------------------------------------------------------------------
/vestlus/middleware/helpers/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:middleware:helpers
2 |
--------------------------------------------------------------------------------
/vestlus/views/mixins/__init__.py:
--------------------------------------------------------------------------------
1 | from .ajaxable_response import AjaxableResponseMixin
2 |
--------------------------------------------------------------------------------
/vestlus/models/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:models:tests
2 | from .message import MessageTestCase
3 |
--------------------------------------------------------------------------------
/vestlus/templates/search/indexes/vestlus/message_text.txt:
--------------------------------------------------------------------------------
1 | {{ object.sender }}
2 | {{ object.content }}
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include LICENSE.md
2 | include README.md
3 | recursive-include vestlus/templates *
4 | recursive-include docs *
5 |
--------------------------------------------------------------------------------
/vestlus/templates/search/indexes/vestlus/groupmessage_text.txt:
--------------------------------------------------------------------------------
1 | {{ object.sender }}
2 | {{ object.channel }}
3 | {{ object.content }}
--------------------------------------------------------------------------------
/vestlus/views/routes.py:
--------------------------------------------------------------------------------
1 | # vestlus:views:routes
2 |
3 | # The routes for your CBVs (class-based views) go here
4 | routes = []
5 |
--------------------------------------------------------------------------------
/vestlus/templates/search/indexes/vestlus/privatemessage_text.txt:
--------------------------------------------------------------------------------
1 | {{ object.sender }}
2 | {{ object.content }}
3 | {{ object.receiver }}
--------------------------------------------------------------------------------
/vestlus/templates/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 |
--------------------------------------------------------------------------------
/vestlus/templates/search/indexes/vestlus/channel_text.txt:
--------------------------------------------------------------------------------
1 | {{ object.name }}
2 | {{ object.is_private }}
3 | {{ object.created_at }}
4 | {{ object.updated_at }}
--------------------------------------------------------------------------------
/vestlus/search_indexes/__init__.py:
--------------------------------------------------------------------------------
1 | from .channel import ChannelIndex
2 | from .message import PrivateMessageIndex
3 | from .message import GroupMessageIndex
4 |
--------------------------------------------------------------------------------
/vestlus/models/signals/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:models:signals
2 | from .create_membership import create_member
3 | from .update_index import update_search_indexes
4 |
--------------------------------------------------------------------------------
/vestlus/viewsets/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:viewsets
2 | from .message import GroupMessageViewSet
3 | from .channel import ChannelViewSet
4 | from .membership import MembershipViewSet
5 |
--------------------------------------------------------------------------------
/vestlus/admin/inlines/channel.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 | from ...models import Channel
3 |
4 |
5 | class ChannelInline(admin.StackedInline):
6 | model = Channel
7 | extra = 0
8 |
--------------------------------------------------------------------------------
/vestlus/serializers/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # vestlus:serializers:tests
2 | from .message import MessageTestCase
3 | from .channel import ChannelTestCase
4 | from .group_message import GroupMessageTestCase
5 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 | 16 | Created {{ object.created_at|timesince }} ago 17 | 18 |
19 |6 | 7 | Sent by 8 | 9 | 10 | {{ object.sender.first_name }} 11 | 12 | 13 | {% if object.channel %} 14 | in 15 | 16 | {{ object.channel.name }} 17 | 18 | {% endif %} 19 | {{ object.created_at|timesince }} ago 20 | 21 |
22 |
27 |
33 |
37 |
94 | 68 | 69 | Invite member 70 | 71 |
72 | {% endif %} 73 | 74 |
85 | 93 | 94 | Joined {{ membership.created_at|timesince }} ago 95 | 96 |
97 |