aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-28 16:34:59 +0100
committerTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-28 16:34:59 +0100
commit93a81646dab2369978dde4a9ca11f9f79061e369 (patch)
tree85d3c85152600e54836e2878f71edbe9517d3a38
parent74936fc8083a6d0ff242d5328786822471dfc58f (diff)
parente4b8c1498f3320b4f7aa0283241c7a06b77b349c (diff)
Merge branch 'develop' of http://gitlab.pmf.kg.ac.rs/BrzoDoLokacije2022/odyssey/brzodolokacije into develop
-rw-r--r--Backend/Api/Api/Models/Post.cs2
-rw-r--r--Backend/Api/Api/Services/PostService.cs29
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt4
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml6
8 files changed, 51 insertions, 26 deletions
diff --git a/Backend/Api/Api/Models/Post.cs b/Backend/Api/Api/Models/Post.cs
index 1a4129f..0dc8158 100644
--- a/Backend/Api/Api/Models/Post.cs
+++ b/Backend/Api/Api/Models/Post.cs
@@ -38,9 +38,11 @@ namespace Api.Models
public DateTime createdAt { get; set; }
public int views { get; set; }
public double ratings { get; set; }
+ public int ratingscount { get; set; }
public List<CommentSend> comments { get; set; }
public List<File> images { get; set; }
public List<string>? tags { get; set; }
+ public DateTime? lastViewed { get; set; }
}
public class Rating
{
diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs
index e2e4e40..0676d74 100644
--- a/Backend/Api/Api/Services/PostService.cs
+++ b/Backend/Api/Api/Services/PostService.cs
@@ -39,11 +39,11 @@ namespace Api.Services
p.comments = new List<Comment>();
p.images = new List<Models.File>();
p.createdAt = DateTime.Now.ToUniversalTime();
- if (post.tags != null)
- {
- var tags = post.tags.Split("|").ToList();
- p.tags = tags;
- }
+ List<String> tags;
+ if (post.tags != "none")
+ tags = post.tags.Remove(post.tags.Length-1,1).Split("|").ToList();
+ else tags = null;
+ p.tags = tags;
var folderPath = Path.Combine(Directory.GetCurrentDirectory(), "Files", p.ownerId);
if (!Directory.Exists(folderPath))
{
@@ -88,6 +88,7 @@ namespace Api.Services
p.views = post.views.Count();
p.createdAt = post.createdAt;
p.tags = post.tags;
+ p.ratingscount = post.ratings.Count();
if (post.ratings.Count() > 0)
{
List<int> ratings = new List<int>();
@@ -119,9 +120,16 @@ namespace Api.Services
Post p = await _posts.Find(post => post._id == id).FirstOrDefaultAsync();
if (p != null)
{
- if (!p.views.Any(x => x == userid))
+ if (!p.views.Any(x => x.Split("|")[0] == userid))
+ {
+ p.views.Add(userid + "|" + DateTime.Now.ToUniversalTime().ToString());
+ await _posts.ReplaceOneAsync(x => x._id == id, p);
+ }
+ else
{
- p.views.Add(userid);
+ var v = p.views.Find(x => x.Split("|")[0] == userid);
+ p.views.Remove(v);
+ p.views.Add(userid + "|" + DateTime.Now.ToUniversalTime().ToString());
await _posts.ReplaceOneAsync(x => x._id == id, p);
}
}
@@ -311,7 +319,7 @@ namespace Api.Services
xd = ls.OrderByDescending(x => x.createdAt).ToList();
break;
default:
-
+ xd = ls.OrderByDescending(x => x.views).ToList();
break;
}
if(xd != null)
@@ -363,12 +371,15 @@ namespace Api.Services
var tosend = new List<PostSend>();
foreach (var post in posts)
{
- if (post.views.Any(x => x.Equals(userid)))
+ if (post.views.Any(x => x.Split("|")[0] == userid))
{
+ var t = post.views.Find(x => x.Split("|")[0] == userid);
var x = await postToPostSend(post);
+ x.lastViewed = DateTime.Parse(t.Split("|")[1]).ToUniversalTime();
tosend.Add(x);
}
}
+ tosend = tosend.OrderByDescending(x => x.lastViewed).ToList();
return tosend;
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt
index 6835e6e..efe2ac2 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt
@@ -112,7 +112,7 @@ class ActivityAddPost : AppCompatActivity() {
tagText.isGone=false
tagText.isVisible=true
- if(tagList.count()<5) {
+ if(tagList.count()<4 && tagText.text.toString().length>=3) {
var tagstr = tagText.text.toString()
var newbtn = Button(this)
newbtn.setId(tagidcounter)
@@ -141,7 +141,7 @@ class ActivityAddPost : AppCompatActivity() {
tagText.text.clear()
}
else{
- Toast.makeText(this,"Maksimalno 5 tagova",Toast.LENGTH_LONG)
+ Toast.makeText(this,"Maksimalno 4 tagova ( duzine + karaktera)",Toast.LENGTH_LONG)
}
}
@@ -265,10 +265,12 @@ class ActivityAddPost : AppCompatActivity() {
var descReq=RequestBody.create("text/plain".toMediaTypeOrNull(),desc)
var idReq=RequestBody.create("text/plain".toMediaTypeOrNull(),"dsa")
- var tagliststring=""
- for(tag in tagList){
- tagliststring=tagliststring+tag+"|"
- }
+ var tagliststring="none"
+ if(tagList.count()>0){
+ tagliststring=""
+ for(tag in tagList){
+ tagliststring=tagliststring+tag+"|"
+ }}
var tagReq=RequestBody.create("text/plain".toMediaTypeOrNull(),tagliststring)
val imagesParts = arrayOfNulls<MultipartBody.Part>(
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
index 94b5574..0221241 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
@@ -98,7 +98,7 @@ class ActivityCapturePost : AppCompatActivity() {
tagText.isGone=false
tagText.isVisible=true
- if(tagList.count()<5) {
+ if(tagList.count()<4 && tagText.text.toString().length>=3) {
var tagstr = tagText.text.toString()
var newbtn = Button(this)
newbtn.setId(tagidcounter)
@@ -127,7 +127,7 @@ class ActivityCapturePost : AppCompatActivity() {
tagText.text.clear()
}
else{
- Toast.makeText(this,"Maksimalno 5 tagova",Toast.LENGTH_LONG)
+ Toast.makeText(this,"Maksimalno 4 tagova (duzine 3+ karaktera)",Toast.LENGTH_LONG)
}
}
@@ -268,10 +268,12 @@ class ActivityCapturePost : AppCompatActivity() {
var descReq= RequestBody.create("text/plain".toMediaTypeOrNull(),desc)
var idReq= RequestBody.create("text/plain".toMediaTypeOrNull(),"dsa")
- var tagliststring=""
- for(tag in tagList){
- tagliststring=tagliststring+tag+"|"
- }
+ var tagliststring="none"
+ if(tagList.count()>0){
+ tagliststring=""
+ for(tag in tagList){
+ tagliststring=tagliststring+tag+"|"
+ }}
var tagReq=RequestBody.create("text/plain".toMediaTypeOrNull(),tagliststring)
val imagesParts = arrayOfNulls<MultipartBody.Part>(
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt
index e925984..b788b93 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt
@@ -7,8 +7,10 @@ import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.preference.PreferenceManager
+import android.provider.ContactsContract.CommonDataKinds.Im
import android.util.Log
import android.view.Gravity
+import android.widget.ImageButton
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
@@ -122,7 +124,7 @@ class ActivitySinglePost : AppCompatActivity() {
fun setRatingListeners(){
val emptyStar=R.drawable.empty_star
val fullStar=R.drawable.full_star
-
+ //var starlist:List<ImageButton> = mutableListOf()
binding.rateStar1.setOnClickListener {
Toast.makeText(this,"kliknuta prva zvezdica",Toast.LENGTH_SHORT).show()
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt
index faaa3b4..fa3f06b 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt
@@ -233,7 +233,7 @@ class MapsActivity : AppCompatActivity() {
responseLocations=response.body()!!
var tempList=mutableListOf<String>()
if(existingLocation!=null && existingLocation.size>0)
- for(loc in existingLocation!!){
+ for(loc in existingLocation!!){
spinnerAdapter!!.remove(loc.name)
}
for(loc in responseLocations!!){
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
index e2e9209..f0f67a7 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
@@ -4,6 +4,7 @@ import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
import okhttp3.MultipartBody
import java.time.LocalDateTime
+import java.util.*
data class Post (
var _id:String,
@@ -35,7 +36,12 @@ data class PostPreview (
var ratings:Float,
var comments:List<CommentSend>?,
var images:List<PostImage>,
+ var ratingscount:Int,
+ var createdAt:Date,
+ var lastViewed: Date?, //samo za istoriju pregleda
var tags:List<String>?
+
+
//nedostaju datum i vreme kreiranja
):Parcelable
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml
index 96ac3ff..8e3fbb4 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml
@@ -99,7 +99,7 @@
android:hint="Reykjavik, Iceland"
android:inputType="textEmailAddress"
android:visibility="gone"
- app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostAddTag"
+ app:layout_constraintBottom_toTopOf="@+id/llTags"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
@@ -133,12 +133,12 @@
<LinearLayout
android:id="@+id/llTags"
- android:layout_width="0dp"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal"
- app:layout_constraintBottom_toTopOf="@+id/acTags"
+ app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostAddTag"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"></LinearLayout>