diff --git a/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc b/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc index 8708c4d..5e81a26 100644 Binary files a/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc and b/backend/artistsmgmt/api/__pycache__/urls.cpython-310.pyc differ diff --git a/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc b/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc index b8c9fd4..6821c3f 100644 Binary files a/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc and b/backend/artistsmgmt/api/__pycache__/views.cpython-310.pyc differ diff --git a/backend/artistsmgmt/api/views.py b/backend/artistsmgmt/api/views.py index 8019067..73bb9f8 100644 --- a/backend/artistsmgmt/api/views.py +++ b/backend/artistsmgmt/api/views.py @@ -67,11 +67,14 @@ class ArtistRetrieveUpdateDestroyView(generics.RetrieveUpdateDestroyAPIView): queryset = Artist.objects.all() serializer_class = ArtistSerializer -class ArtistUpdateView(RetrieveUpdateAPIView): +class ArtistUpdateView(generics.UpdateAPIView): queryset = Artist.objects.all() serializer_class = ArtistSerializer # permission_classes = [IsAuthenticated] # Adjust permissions as needed - def get_object(self): - user = self.request.user - return Artist.objects.get(user=user) + def patch(self, request, *args, **kwargs): + instance = self.get_object() + serializer = self.get_serializer(instance, data=request.data, partial=True) + serializer.is_valid(raise_exception=True) + self.perform_update(serializer) + return Response(serializer.data) \ No newline at end of file diff --git a/frontend/src/components/profile/ArtistProfile.js b/frontend/src/components/profile/ArtistProfile.js new file mode 100644 index 0000000..707153a --- /dev/null +++ b/frontend/src/components/profile/ArtistProfile.js @@ -0,0 +1,10 @@ +import React from 'react'; + +const ArtistProfile = () => { + return ( +
+
+ ); +}; + +export default ArtistProfile; diff --git a/frontend/src/components/profile/ContactForm.js b/frontend/src/components/profile/ContactForm.js new file mode 100644 index 0000000..8ed7d8f --- /dev/null +++ b/frontend/src/components/profile/ContactForm.js @@ -0,0 +1,36 @@ +import React from 'react'; + +const ContactForm = () => { + const handleSubmit = (e) => { + e.preventDefault(); + // Handle form submission logic + }; + + return ( +
+

Contact

+ {/*
+ + Name + + + + + Email address + + + + + Message + + + + +
*/} +
+ ); +}; + +export default ContactForm; diff --git a/frontend/src/components/profile/HeroSection.js b/frontend/src/components/profile/HeroSection.js new file mode 100644 index 0000000..b826cc5 --- /dev/null +++ b/frontend/src/components/profile/HeroSection.js @@ -0,0 +1,25 @@ +//Hero.js + +import Link from 'next/link'; + +const Hero = () => { + return( +
+
+

"Discover,Showcase, Connect, Thrive." +

+

+ Join us on a journey where art knows no bounds,
and limitless imagination with our artists. +

+
+ + View Artists + +
+
+
+ + ); +}; + +export default Hero; \ No newline at end of file diff --git a/frontend/src/components/profile/Navbar.js b/frontend/src/components/profile/Navbar.js new file mode 100644 index 0000000..ae52a35 --- /dev/null +++ b/frontend/src/components/profile/Navbar.js @@ -0,0 +1,51 @@ +import React from "react"; +import Link from "next/link"; + +const Customnavbar = () => { + return ( + + ); +}; + +export default Customnavbar; diff --git a/frontend/src/components/profile/Portfolio.js b/frontend/src/components/profile/Portfolio.js new file mode 100644 index 0000000..731c1fe --- /dev/null +++ b/frontend/src/components/profile/Portfolio.js @@ -0,0 +1,40 @@ +import React from 'react'; + +const Portfolio = () => { + // Sample data for portfolio items + const portfolioItems = [ + { + title: 'Project 1', + image: 'path/to/project1-image.jpg', + description: 'Description of project 1...', + link: 'https://project1-link.com', + }, + // Add more items as needed + ]; + + return ( + //
+ //

Portfolio

+ //
+ // {portfolioItems.map((item, index) => ( + //
+ // + // + // + // {item.title} + // {item.description} + // + // + // + //
+ // ))} + //
+ //
+ +

Portfolio

+ ); +}; + +export default Portfolio; diff --git a/frontend/src/pages/_app.js b/frontend/src/pages/_app.js index fa49705..fdcb22d 100644 --- a/frontend/src/pages/_app.js +++ b/frontend/src/pages/_app.js @@ -10,8 +10,9 @@ export default function App({ Component, pageProps, router }) { const isLoginPage = router.pathname === '/login'; const isSignupPage = router.pathname === '/signup'; const isShowcasePage = router.pathname === '/showcase'; + const isProfilePage = router.pathname === '/profile'; - const shouldIncludeNavbarAndFooter = !(isLoginPage || isSignupPage || isShowcasePage); + const shouldIncludeNavbarAndFooter = !(isLoginPage || isSignupPage || isShowcasePage || isProfilePage); useEffect(() => { // Initialize Google Analytics diff --git a/frontend/src/pages/profile.js b/frontend/src/pages/profile.js new file mode 100644 index 0000000..4da1a52 --- /dev/null +++ b/frontend/src/pages/profile.js @@ -0,0 +1,20 @@ +import React from "react"; +import Navbar from "../components/profile/Navbar"; +import ArtistProfile from "../components/profile/ArtistProfile"; +import Portfolio from "../components/profile/Portfolio"; +import ContactForm from "../components/profile/ContactForm"; +import Hero from "@/components/profile/HeroSection"; + +const Profile = () => { + return ( +
+ + + + + +
+ ); +}; + +export default Profile;