Skip to content
GitLab
Menu
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Bereketab Bantewesen
Eaii Startup Hub
Commits
8bc57468
Commit
8bc57468
authored
1 year ago
by
Bereketab Bantewesen
Browse files
Options
Download
Email Patches
Plain Diff
message not final yet 2
parent
428a6fa7
main
after-filter-fix
feature/message2
feature/robel
final-production
on_production
on_production2
1 merge request
!11
Message 3
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
main/models.py
+5
-1
main/models.py
main/templatetags/getUser.py
+4
-0
main/templatetags/getUser.py
main/views.py
+76
-15
main/views.py
templates/messages/after_sent.html
+2
-2
templates/messages/after_sent.html
templates/messages/conversation.html
+1
-1
templates/messages/conversation.html
with
88 additions
and
19 deletions
+88
-19
main/models.py
+
5
-
1
View file @
8bc57468
...
...
@@ -435,12 +435,14 @@ class Conversation(models.Model):
return
self
.
subject
class
Message
(
models
.
Model
):
id
=
models
.
UUIDField
(
primary_key
=
True
,
default
=
uuid
.
uuid4
,
editable
=
False
)
conversation
=
models
.
ForeignKey
(
Conversation
,
related_name
=
'message_conversations'
,
on_delete
=
models
.
CASCADE
)
sender
=
models
.
ForeignKey
(
StartupProjectUser
,
related_name
=
'message_sender'
,
on_delete
=
models
.
CASCADE
)
content
=
models
.
TextField
()
timestamp
=
models
.
DateTimeField
(
'timestamp'
,
auto_now_add
=
True
)
...
...
@@ -449,12 +451,14 @@ class Message(models.Model):
class
MessageIgnorance
(
models
.
Model
):
id
=
models
.
UUIDField
(
primary_key
=
True
,
default
=
uuid
.
uuid4
,
editable
=
False
)
message
=
models
.
ForeignKey
(
Message
,
related_name
=
'message_ignorance'
,
on_delete
=
models
.
CASCADE
)
participant
=
models
.
ForeignKey
(
StartupProjectUser
,
related_name
=
'message_participant'
,
on_delete
=
models
.
CASCADE
)
can_view
=
models
.
BooleanField
(
default
=
False
)
def
__str__
(
self
):
return
f
'
{
self
.
sender
.
username
}
-
{
self
.
content
[
:
50
]
}
'
return
f
'
{
self
.
id
}
- '
class
Poster
(
models
.
Model
):
...
...
This diff is collapsed.
Click to expand it.
main/templatetags/getUser.py
+
4
-
0
View file @
8bc57468
...
...
@@ -168,10 +168,14 @@ from django.db.models import Q
@
register
.
filter
def
getAllRelated
(
conversationId
,
userId
):
try
:
message
=
Message
.
objects
.
filter
(
conversation
=
conversationId
)
# print(message)
message_sent
=
message
.
filter
(
sender
=
userId
).
annotate
(
is_sent
=
Value
(
True
,
output_field
=
BooleanField
()))
message_recive
=
message
.
exclude
(
sender
=
userId
).
annotate
(
is_sent
=
Value
(
False
,
output_field
=
BooleanField
()))
merged
=
message_recive
.
union
(
message_sent
)
# print(conversationId,userId)
return
merged
.
order_by
(
'timestamp'
)
except
Profile
.
DoesNotExist
:
return
''
...
...
This diff is collapsed.
Click to expand it.
main/views.py
+
76
-
15
View file @
8bc57468
...
...
@@ -203,6 +203,7 @@ def sentMessage(request):
random_id
=
''
.
join
([
str
(
random
.
randint
(
0
,
9
))
for
_
in
range
(
8
)])
random_id2
=
''
.
join
([
str
(
random
.
randint
(
0
,
8
))
for
_
in
range
(
8
)])
try
:
encrypted_data
=
json
.
loads
(
request
.
body
)[
'encryptedData'
]
...
...
@@ -227,9 +228,47 @@ def sentMessage(request):
subject
=
subject
)
conversation
.
participants
.
set
(
recipient_ids
+
[
request
.
user
.
id
])
connected_users_within_message
=
[]
for
reciver
in
conversation
.
participants
.
all
().
exclude
(
id
=
request
.
user
.
id
):
connected_i_recive
=
Connect
.
objects
.
filter
(
Q
(
requester
=
reciver
)
,
Q
(
responser
=
request
.
user
)
,
Q
(
status_admin
=
2
)
)
if
connected_i_recive
:
connected_users_within_message
.
append
(
list
(
connected_i_recive
.
values_list
(
'requester'
,
flat
=
True
))[
0
])
connected_i_sent
=
Connect
.
objects
.
filter
(
Q
(
responser
=
reciver
)
,
Q
(
requester
=
request
.
user
)
,
Q
(
status_admin
=
2
)
)
if
connected_i_sent
:
connected_users_within_message
.
append
(
list
(
connected_i_sent
.
values_list
(
'responser'
,
flat
=
True
))[
0
])
connected_users_within_message
=
[
str
(
uuid
)
for
uuid
in
connected_users_within_message
]
message_recivers
=
[
str
(
uuid
)
for
uuid
in
list
(
conversation
.
participants
.
all
().
exclude
(
id
=
request
.
user
.
id
).
values_list
(
'id'
,
flat
=
True
))]
message
=
Message
(
conversation
=
conversation
,
sender
=
request
.
user
,
content
=
json
.
loads
(
text
)[
'message'
])
message
.
save
()
print
(
'whats going'
)
for
reciver
in
message_recivers
:
print
(
reciver
in
connected_users_within_message
)
print
(
StartupProjectUser
.
objects
.
get
(
id
=
reciver
))
if
reciver
in
connected_users_within_message
:
message_ignorance
=
MessageIgnorance
(
participant
=
StartupProjectUser
.
objects
.
get
(
id
=
reciver
),
can_view
=
True
,
message
=
message
)
message_ignorance
.
save
()
else
:
message_ignorance
=
MessageIgnorance
(
participant
=
StartupProjectUser
.
objects
.
get
(
id
=
reciver
),
can_view
=
False
,
message
=
message
)
message_ignorance
.
save
()
user
=
request
.
user
subquery
=
Message
.
objects
.
filter
(
conversation
=
OuterRef
(
'id'
)).
values
(
'conversation'
).
annotate
(
latest_date
=
Max
(
'timestamp'
)).
values
(
'latest_date'
)[:
1
]
...
...
@@ -239,8 +278,9 @@ def sentMessage(request):
context
=
{
'conversations'
:
conversations
,
'random_id'
:
random_id
,
'random_id
2
'
:
random_id2
'random_id
3
'
:
random_id2
}
print
(
'whats going'
)
return
render
(
request
,
'messages/after_sent.html'
,
context
)
except
Exception
as
e
:
...
...
@@ -317,23 +357,42 @@ def sentMessagefromDetail(request):
return
HttpResponse
(
'you are not allowed to this message'
)
if
len
(
is_current_user_got_exact_connects
)
==
0
:
return
HttpResponse
(
'you are not allowed to this message'
)
responsers
=
[]
requester
=
[]
for
item
in
conversation
.
participants
.
all
().
exclude
(
id
=
queryset2
.
id
):
if
is_current_user_got_exact_connects
.
filter
(
responser
=
item
):
for
c
in
is_current_user_got_exact_connects
.
filter
(
responser
=
item
):
responsers
.
append
(
c
.
responser
)
if
is_current_user_got_exact_connects
.
filter
(
requester
=
item
):
for
c
in
is_current_user_got_exact_connects
.
filter
(
requester
=
item
):
requester
.
append
(
c
.
requester
)
# print(requester)
# print(responsers)
# print(conversation.participants.all().exclude(id=queryset2.id))
connected_users_within_message
=
[]
for
reciver
in
conversation
.
participants
.
all
().
exclude
(
id
=
request
.
user
.
id
):
connected_i_recive
=
Connect
.
objects
.
filter
(
Q
(
requester
=
reciver
)
,
Q
(
responser
=
request
.
user
)
,
Q
(
status_admin
=
2
)
)
if
connected_i_recive
:
connected_users_within_message
.
append
(
list
(
connected_i_recive
.
values_list
(
'requester'
,
flat
=
True
))[
0
])
connected_i_sent
=
Connect
.
objects
.
filter
(
Q
(
responser
=
reciver
)
,
Q
(
requester
=
request
.
user
)
,
Q
(
status_admin
=
2
)
)
if
connected_i_sent
:
connected_users_within_message
.
append
(
list
(
connected_i_sent
.
values_list
(
'responser'
,
flat
=
True
))[
0
])
connected_users_within_message
=
[
str
(
uuid
)
for
uuid
in
connected_users_within_message
]
message_recivers
=
[
str
(
uuid
)
for
uuid
in
list
(
conversation
.
participants
.
all
().
exclude
(
id
=
request
.
user
.
id
).
values_list
(
'id'
,
flat
=
True
))]
message
=
Message
(
conversation
=
conversation
,
sender
=
request
.
user
,
content
=
json
.
loads
(
text
)[
'message'
])
message
.
save
()
for
reciver
in
message_recivers
:
if
reciver
in
connected_users_within_message
:
message_ignorance
=
MessageIgnorance
(
participant
=
StartupProjectUser
.
objects
.
get
(
id
=
reciver
),
can_view
=
True
,
message
=
message
)
message_ignorance
.
save
()
# print(reciver,'must save user as true')
else
:
message_ignorance
=
MessageIgnorance
(
participant
=
StartupProjectUser
.
objects
.
get
(
id
=
reciver
),
can_view
=
False
,
message
=
message
)
message_ignorance
.
save
()
user
=
request
.
user
subquery
=
Message
.
objects
.
filter
(
conversation
=
OuterRef
(
'id'
)).
values
(
'conversation'
).
annotate
(
latest_date
=
Max
(
'timestamp'
)).
values
(
'latest_date'
)[:
1
]
...
...
@@ -342,9 +401,11 @@ def sentMessagefromDetail(request):
context
=
{
'conversations'
:
conversations
,
'random_id'
:
random_id
,
#
'random_id': random_id,
'random_id3'
:
random_id2
}
return
render
(
request
,
'messages/after_sent.html'
,
context
)
except
Exception
as
e
:
...
...
This diff is collapsed.
Click to expand it.
templates/messages/after_sent.html
+
2
-
2
View file @
8bc57468
...
...
@@ -169,9 +169,9 @@
}
});
}
var
randomId
=
'
{{random_id3}}
'
var
randomId
25
=
'
{{random_id3}}
'
var
message_form698
=
document
.
getElementById
(
randomId
);
var
message_form698
=
document
.
getElementById
(
randomId
25
);
if
(
message_form698
)
{
message_form698
.
addEventListener
(
"
submit
"
,
(
e
)
=>
{
e
.
preventDefault
();
...
...
This diff is collapsed.
Click to expand it.
templates/messages/conversation.html
+
1
-
1
View file @
8bc57468
...
...
@@ -111,7 +111,7 @@
</li>
{% endfor %}
</ul>
{{conversations}}
<div
class=
"form-group mt-3 mb-0"
>
<form
id=
"{{random_id3}}"
method=
"post"
>
{% csrf_token %}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets